Rails "Page Not Found" Problem


#1

I’m struggling with a rails app right now. One of the problems I have is that 9 times out of 10 a particular search in my app produces a “Page Not Found” error.

The error comes not from rails, not from Passenger, but rather from “linkhelp.clients.google.com” (not sure how that happens).

When it does this my http server logs show:

[font=Courier]Fri May 27 21:05:45 2011] [error] [client 99.99.99.99] Premature end of script headers: individuals, referer: etc.[/font]

And my Rails log says:

[font=Courier]Started GET “/internal_error.html” for 69.140.73.28 at Fri May 27 21:05:48 -0700 2011

ActionController::RoutingError (No route matches “/internal_error.html”):[/font]

Not sure where that comes from either.

Anyone have any ideas?

The same code works fine in a development environment, where Passenger and Mysql are not involved.


#2

I have the same problem. I am not getting anything from my error log. But the no route to “/internal_error.html” is something I do get.

Any luck figuring out where this comes from. I find it only happens when you POST data.


#3

I had this problem.

I was doing some rerouting of my User model where by instead of using

mysite.com/users/23234/edit

i have

mysite.com/users/username/edit

so after any update action when i would normally redirect back to the edit page with a redirect_to, not with render :action => 'edit’
i was getting that internal_error page error which was driving me crazy.

refreshing the page the error was on would serve the right page.

ANYWAY. I solved this by simply putting in

sleep 0.5 just before my redirect. that seems to have fixed it.


#4

In my case it is their procwatch killing my process causing error 500 and then magically they redirect to that internal_error.html page. There is no documentation about this brain fart and so far their support has not bothered to answer my ticket.

They use procwatch to market dedicated hosting servers. It kills all processes that are hogging too much memory or CPU time, and gives them an excuse to start upselling. When that happens you will find “Premature end of script headers” string from your httpd error log.