http://localhost:16686/api/services returns
{"data":null,"total":0,"limit":0,"offset":0,"errors":[{"code":500,"msg":"Could not find aggregation of distinct_services"}]}

Steps to reproduce:
docker run -it --rm -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e "xpack.security.enabled=false" docker.elastic.co/elasticsearch/elasticsearch:5.6.1
go run cmd/query/main.go --query.static-files=jaeger-ui-build/build/ --span-storage.type=elasticsearch
@mh-park look at the mess you've created
Basically, any endpoint returns 500 with a fresh ES without any data.
Edit:
curl -ivX GET localhost:16686/api/dependencies?endTs=1 works but /traces and /services do not work.
is it because the indices are not created and the ES queries actually fail rather than returning empty results? There was a suggestion on another ticket to init the indices on ESStorage start-up instead of on the first write.
Most helpful comment
@mh-park look at the mess you've created