I've been seeing this over the past week or so since I started separating my apps into subdomains using the parametric router. My entries are simple:
routers = dict( BASE = dict( domains = { 'domain.com' : 'blog', 'chat.domain.com' : 'chat', 'maps.domain.com' : 'maps', } ), ) The problem is sometimes when calling the function of a non-default controller it will try to run the controller as a function of default, giving me an invalid function error. If I focus on the address bar and just keep hitting enter eventually the server will get it right and route me to the correct controller and function. If I keep reloading the page it will eventually break again going back to the default controller. It's completely random. Sometimes it goes back and forth from broken to working fairly quickly. Sometimes it breaks for minutes at a time. Sometimes it works fine for minutes at a time. A practical example: I set up the controller `new` in my blog app with a function specific to creating a new blog entry via CRUD. When I got to domain.com/new/blog I get the error: *Invalid Function (/default/new)* * * I did an experiment and tried to call and invalid function on the correct controller (/new) and indeed it switched between telling me that /new/fakefunction and /default/new were invalid functions. This behavior is quite unpredictable as to when it will pop up. Sometimes a new controller will not work right away. Sometimes a new controller will work fine. There are no correlating circumstances I can find. Reloading the router via Admin does not seem to help, nor does restarting uWSGI. I'm running web2py through uWSGI which is using my host's shared Nginx instance as an http proxy to save RAM if that's relevant. Currently I'm running without a router as I'm quite a ways off from production so it doesn't matter. The issues does not show up without routes.py present. I've searched a bit and I seem to see others with possibly similar issues but I've seen no conclusive fixes. --