Error parsing yaml file: mapping values are not allowed here
Solution 1:
Change
application:climate-change
to
application: climate-change
The space after the colon is mandatory in yaml if you want a key-value pair. (See http://www.yaml.org/spec/1.2/spec.html#id2759963)
Solution 2:
Another cause is wrong indentation which means trying to create the wrong objects. I've just fixed one in a Kubernetes Ingress definition:
Wrong
- path: /
backend:
serviceName: <service_name>
servicePort: <port>
Correct
- path: /
backend:
serviceName: <service_name>
servicePort: <port>
Solution 3:
Or, if spacing is not the problem, it might want the parent directory name rather than the file name.
Not $ dev_appserver helloapp.py
But $ dev_appserver hello/
For example:
Johns-Mac:hello john$ dev_appserver.py helloworld.py
Traceback (most recent call last):
File "/usr/local/bin/dev_appserver.py", line 82, in <module>
_run_file(__file__, globals())
...
File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/yaml_listener.py", line 212, in _GenerateEventParameters
raise yaml_errors.EventListenerYAMLError(e)
google.appengine.api.yaml_errors.EventListenerYAMLError: mapping values are not allowed here
in "helloworld.py", line 3, column 39
Versus
Johns-Mac:hello john$ cd ..
Johns-Mac:fbm john$ dev_appserver.py hello/
INFO 2014-09-15 11:44:27,828 api_server.py:171] Starting API server at: http://localhost:61049
INFO 2014-09-15 11:44:27,831 dispatcher.py:183] Starting module "default" running at: http://localhost:8080
Solution 4:
Incorrect:
people:
empId: 123
empName: John
empDept: IT
Correct:
people:
emp:
id: 123
name: John
dept: IT
Solution 5:
Maybe this will help someone else, but I've seen this error when the RHS of the mapping contains a colon without enclosing quotes, such as:
someKey: another key: Change to make today: work out more
should be
someKey: another key: "Change to make today: work out more"