GIScience / GIScience/ohsome-quality-api

Ohsome API unavailable

Open
#1,034 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
51
Forks
7
Avg merge
21h 54m
Merged PRs (30d)
9

Description

Ohsome dashboard returns 503 Service Unavaiable

Example https://dashboard.ohsome.org/en/#backend=oqtApi&topic=building-count&adminids=-52411&indicators=mapping-saturation

```
OhsomeApiError
Querying the ohsome API failed! Service Unavailable
```

```
{ "headers": { "headers": {}, "normalizedNames": {}, "lazyUpdate": null }, "status": 503, "statusText": "Unknown Error", "url": "https://api.ohsome.org/v1/elements/count", "ok": false, "redirected": false, "responseType": "cors", "name": "HttpErrorResponse", "message": "Http failure response for https://api.ohsome.org/v1/elements/count: 503 ", "error": { "timestamp": "2026-07-03T13:47:12.573+00:00", "status": 503, "error": "Service Unavailable", "path": "/elements/count" } }
```

No error in web console, only this other error

```
polyfills-CUXT7X2P.js:2 POST https://api.quality.ohsome.org/v1/indicators/mapping-saturation 422 (Unprocessable Content)
(anonymous) @ polyfills-CUXT7X2P.js:2
t. @ polyfills-CUXT7X2P.js:1
(anonymous) @ main-FJ2IVEKD.js:4087
(anonymous) @ main-FJ2IVEKD.js:4087
runOutsideAngular @ main-FJ2IVEKD.js:4086
(anonymous) @ main-FJ2IVEKD.js:4087
(anonymous) @ chunk-VISIUPMA.js:1
A @ polyfills-CUXT7X2P.js:2
D @ chunk-VISIUPMA.js:1
doRequest @ main-FJ2IVEKD.js:4087
(anonymous) @ main-FJ2IVEKD.js:4087
_trySubscribe @ main-FJ2IVEKD.js:4085
(anonymous) @ main-FJ2IVEKD.js:4085
Lg @ main-FJ2IVEKD.js:4085
subscribe @ main-FJ2IVEKD.js:4085
(anonymous) @ main-FJ2IVEKD.js:4085
(anonymous) @ main-FJ2IVEKD.js:4085
(anonymous) @ main-FJ2IVEKD.js:4085
Lg @ main-FJ2IVEKD.js:4085
subscribe @ main-FJ2IVEKD.js:4085
(anonymous) @ main-FJ2IVEKD.js:4085
(anonymous) @ main-FJ2IVEKD.js:4085
(anonymous) @ main-FJ2IVEKD.js:4085
Lg @ main-FJ2IVEKD.js:4085
subscribe @ main-FJ2IVEKD.js:4085
r @ main-FJ2IVEKD.js:4085
o @ main-FJ2IVEKD.js:4085
_next @ main-FJ2IVEKD.js:4085
next @ main-FJ2IVEKD.js:4085
(anonymous) @ main-FJ2IVEKD.js:4085
_trySubscribe @ main-FJ2IVEKD.js:4085
(anonymous) @ main-FJ2IVEKD.js:4085
Lg @ main-FJ2IVEKD.js:4085
subscribe @ main-FJ2IVEKD.js:4085
mA @ main-FJ2IVEKD.js:4085
(anonymous) @ main-FJ2IVEKD.js:4085
(anonymous) @ main-FJ2IVEKD.js:4085
(anonymous) @ main-FJ2IVEKD.js:4085
Lg @ main-FJ2IVEKD.js:4085
subscribe @ main-FJ2IVEKD.js:4085
(anonymous) @ main-FJ2IVEKD.js:4085
(anonymous) @ main-FJ2IVEKD.js:4085
(anonymous) @ main-FJ2IVEKD.js:4085
Lg @ main-FJ2IVEKD.js:4085
subscribe @ main-FJ2IVEKD.js:4085
(anonymous) @ main-FJ2IVEKD.js:4085
(anonymous) @ main-FJ2IVEKD.js:4085
(anonymous) @ main-FJ2IVEKD.js:4085
Lg @ main-FJ2IVEKD.js:4085
subscribe @ main-FJ2IVEKD.js:4085
getIndicatorResults @ main-FJ2IVEKD.js:4095
ngOnInit @ main-FJ2IVEKD.js:4095
d4 @ main-FJ2IVEKD.js:4086
Z6 @ main-FJ2IVEKD.js:4086
Y4 @ main-FJ2IVEKD.js:4086
e_ @ main-FJ2IVEKD.js:4086
RF @ main-FJ2IVEKD.js:4086
aM @ main-FJ2IVEKD.js:4086
t5 @ main-FJ2IVEKD.js:4086
e5 @ main-FJ2IVEKD.js:4086
RF @ main-FJ2IVEKD.js:4086
aM @ main-FJ2IVEKD.js:4086
FF @ main-FJ2IVEKD.js:4086
Qk @ main-FJ2IVEKD.js:4086
detectChanges @ main-FJ2IVEKD.js:4086
ngOnInit @ main-FJ2IVEKD.js:4095
d4 @ main-FJ2IVEKD.js:4086
Z6 @ main-FJ2IVEKD.js:4086
Y4 @ main-FJ2IVEKD.js:4086
e_ @ main-FJ2IVEKD.js:4086
RF @ main-FJ2IVEKD.js:4086
aM @ main-FJ2IVEKD.js:4086
t5 @ main-FJ2IVEKD.js:4086
e5 @ main-FJ2IVEKD.js:4086
RF @ main-FJ2IVEKD.js:4086
aM @ main-FJ2IVEKD.js:4086
t5 @ main-FJ2IVEKD.js:4086
NF @ main-FJ2IVEKD.js:4086
n5 @ main-FJ2IVEKD.js:4086
RF @ main-FJ2IVEKD.js:4086
aM @ main-FJ2IVEKD.js:4086
t5 @ main-FJ2IVEKD.js:4086
NF @ main-FJ2IVEKD.js:4086
n5 @ main-FJ2IVEKD.js:4086
RF @ main-FJ2IVEKD.js:4086
aM @ main-FJ2IVEKD.js:4086
FF @ main-FJ2IVEKD.js:4086
Qk @ main-FJ2IVEKD.js:4086
synchronizeOnce @ main-FJ2IVEKD.js:4086
synchronize @ main-FJ2IVEKD.js:4086
tickImpl @ main-FJ2IVEKD.js:4086
_tick @ main-FJ2IVEKD.js:4086
(anonymous) @ main-FJ2IVEKD.js:4086
run @ main-FJ2IVEKD.js:4086
tick @ main-FJ2IVEKD.js:4086
(anonymous) @ main-FJ2IVEKD.js:4086
(anonymous) @ main-FJ2IVEKD.js:4086
D. @ polyfills-CUXT7X2P.js:1
invokeTask @ polyfills-CUXT7X2P.js:1
runTask @ polyfills-CUXT7X2P.js:1
invokeTask @ polyfills-CUXT7X2P.js:1
T.g.useG.invoke @ polyfills-CUXT7X2P.js:1
E._.args. @ polyfills-CUXT7X2P.js:1
requestAnimationFrame
E @ polyfills-CUXT7X2P.js:1
scheduleTask @ polyfills-CUXT7X2P.js:1
scheduleTask @ polyfills-CUXT7X2P.js:1
scheduleMacroTask @ polyfills-CUXT7X2P.js:1
ze @ polyfills-CUXT7X2P.js:1
(anonymous) @ polyfills-CUXT7X2P.js:1
t. @ polyfills-CUXT7X2P.js:1
M3 @ main-FJ2IVEKD.js:4086
(anonymous) @ main-FJ2IVEKD.js:4086
runOutsideAngular @ main-FJ2IVEKD.js:4086
notify @ main-FJ2IVEKD.js:4086
iT @ main-FJ2IVEKD.js:4086
n @ main-FJ2IVEKD.js:4086
(anonymous) @ main-FJ2IVEKD.js:4086
invokeTask @ polyfills-CUXT7X2P.js:1
runTask @ polyfills-CUXT7X2P.js:1
invokeTask @ polyfills-CUXT7X2P.js:1
Z @ polyfills-CUXT7X2P.js:1
j @ polyfills-CUXT7X2P.js:1
x @ polyfills-CUXT7X2P.js:1
```

Chrome 150.0.7871.47 on Windows 10

cc @matthiasschaub

Contributor guide

Open the contributing guide

Research direction

Start by reproducing the dashboard request from the supplied example and checking the reported /v1/elements/count and /v1/indicators/mapping-saturation endpoints. Trace the API path responsible for these responses; done means the dashboard request no longer produces the reported 503 or 422 errors, with the cause and verification documented.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
api, backend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.