orcaman
orcaman

Reputation: 6591

GAE Error When Trying To Run App via Dispatch File

Trying to run my app using the dispatch file like so:

  $ dev_appserver.py dispatch.yaml app1/app.yaml app2/app.yaml

gives me the following error:

Traceback (most recent call last):
  File "/Users/usera/google-cloud-sdk/platform/google_appengine/dev_appserver.py", line 101, in <module>
    _run_file(__file__, globals())
  File "/Users/usera/google-cloud-sdk/platform/google_appengine/dev_appserver.py", line 97, in _run_file
    execfile(_PATHS.script_file(script_name), globals_)
  File "/Users/usera/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/devappserver2.py", line 1041, in <module>
    main()
  File "/Users/usera/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/devappserver2.py", line 1037, in main
    dev_server.stop()
  File "/Users/usera/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/devappserver2.py", line 845, in stop
    metrics.GetMetricsLogger().Stop()
  File "/Users/usera/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/metrics.py", line 117, in Stop
    total_run_time = int((Now() - self._start_time).total_seconds())
TypeError: unsupported operand type(s) for -: 'datetime.datetime' and 'NoneType'

I'm using the latest gcloud installation from here. Each service/module (e.g. app1/app2 in the command above) is written in go.

Content of my dispatch file:

application: my-app

– url: “*/app2/*”
module: app2

– url: “*/app1/*”
module: app1

My python version is 2.7 of course. Any ideas?

Upvotes: 1

Views: 952

Answers (1)

Geoffrey Arnold
Geoffrey Arnold

Reputation: 11

I just ran into this problem too, and I believe the issue is dev_appserver requires a default module to route requests which don't match any dispatch rules.

I was able to define a default module by removing the service attribute from the app.yaml for my default module, and removing the dispatch rule for that module.

In your case, remove the service attribute from app1/app.yaml (if present), and remove the dispatch rule which points to app1 in dispatch.yaml.

Hope this helps!

Upvotes: 1

Related Questions