- Do they have any kind of a throttle -- that is, allowing only a certain number of requests per time period? I know there's 1,000 per day, but maybe there's something at a lower level. Some sort of delay to prevent accidental overloads, maybe.
- Is there something strange about the second word in your list? Are you sure that it is what you think it is? Maybe throw in a print statement to verify.
- What happens if you delete the first word from your list and start the process with the second word? Does the first connection still succeed and the second still fail?
(The HTTP 500 is from Google, right?)(and not your program).
update: Clarified question about the HTTP 500.