marlon360 / rki-covid-api

🦠🇩🇪📈 An API for the spread of covid-19 in Germany. Data from Robert-Koch-Institut.
https://api.corona-zahlen.org/
Creative Commons Attribution 4.0 International
250 stars 50 forks source link

Error 500 for Germany and States endpoints #457

Closed kaolick closed 2 years ago

kaolick commented 2 years ago

At least the following endpoints are currently not working and throw a 500 error:

DSDV commented 2 years ago

Can confirm :/

Toni-99 commented 2 years ago

Problem is, that this is an RKI API error, so noone except the RKI people are able to fix that.

Thats it, the API is dead >.<

DSDV commented 2 years ago

the official covid app still works :/ wonder which api that uses? R-Value State and Country are shown correctly in the FDroid version.

Rubber1Duck commented 2 years ago

I will be back from vacation on Tuesday, and then i will have a Look on this

kaolick commented 2 years ago

The endpoint for the districts is still working:

DSDV commented 2 years ago

https://www.corona-in-zahlen.de/ also still works fine. So there has to be an API that works (:

marlon360 commented 2 years ago

This error is coming up in the logs:

TypeError: Cannot set properties of undefined (setting 'fixedCases7Days') at Parser. (/workspace/src/data-requests/hospitalization.ts:247:60) at Parser.emit (node:events:527:28) at Parser.emit (node:domain:537:15) at emitReadable_ (node:internal/streams/readable:578:12) at processTicksAndRejections (node:internal/process/task_queues:82:21) Emitted 'error' event on ExpressRedisCache instance at: at Domain. (/workspace/node_modules/express-redis-cache/lib/ExpressRedisCache/route.js:47:12) at Domain.emit (node:events:527:28) at Domain.emit (node:domain:475:12) at Domain._errorHandler (node:domain:269:23) at Object. (node:domain:172:29) at process._fatalException (node:internal/process/execution:166:29) { domainThrown: true }

 Looking into it!

marlon360 commented 2 years ago

I added better error messages:

{
   "error":{
      "message":"An error occurred while fetching external data.",
      "url":"https://services7.arcgis.com/mOBPykOjAyBO2ZKk/arcgis/rest/services/Coronafälle_in_den_Bundesländern/FeatureServer/0/query?where=1%3D1&outFields=LAN_ew_EWZ,LAN_ew_AGS,Fallzahl,Aktualisierung,Death,cases7_bl,death7_bl,LAN_ew_GEN&returnGeometry=false&outSR=4326&f=json",
      "details":"Request failed with status code 500",
      "response":"<html>\r\n<head><title>500 Internal Server Error</title></head>\r\n<body>\r\n<center><h1>500 Internal Server Error</h1></center>\r\n<hr><center>Microsoft-Azure-Application-Gateway/v2</center>\r\n</body>\r\n</html>\r\n"
   }
}

Now we know that the firewall blocks the IP address of this server.

DSDV commented 2 years ago

where can we apply to get it unblocked ?

csigritz commented 2 years ago

Will this issue be fixed?

Toni-99 commented 2 years ago

Can't we just switch the server?

marlon360 commented 2 years ago

I use railway for hosting. I created a new project and the IP address is the same.

csigritz commented 2 years ago

I use railway for hosting. I created a new project and the IP address is the same.

So no chance to get it working again?

marlon360 commented 2 years ago

We can use any server that supports Node.js and Redis. Any recommendations?

Rubber1Duck commented 2 years ago

Hey Marlon, maybe the branch "new_container_fixed_incidence" is a solution? Ich war seit langem auf der Suche die fixed Incidence Zahlen, die ja vom RKI nur noch wöchendlich aktualisiert werden, bereitzustellen. Habe dafür ein lösung gefunden. dazu muss aber täglich das RKI Dump heruntergeladen werden. was nur für fixed incidence zahlen wahrer overkill ist. Also dachte ich warum nicht alles berechnen was aus der datei zu berechnen ist. herausgekommen ist das was zur zeit in diesem branch ist. das einzige was noch fehlt ist districtsData. da arbeite ich zur zeit dran. Der updater läuft unter python.. Sobald das Dump zur Verfügung steht werden die dateien berechnet und in einem gemeinsamen volume bereitgestellt, worauf dann der container rki-covid-api zugriff hat. Das ganze läuft unter amd64 und arm64, für home hosting gehen also nur noch 64bit raspies. habe allerdings null ahnung davon was nötig ist um es unter railway zum laufen zu bekommen!. Jeder Server mit Dockerunterstützung sollte allerdings normal funktionieren. rep clonen, submodule aktualiesieren, docker-compose up -d und schon läuft die lucie Wenn du lust hast kannst du es dir ja mal ansehen..... damit sollten zumindest die sperrungen von ip adressen kein thema mehr sein!

edit: districtsData ist nun drin, was noch fehlt ist statesAgeGroup und germanyAgeGroup, allerdings habe ich hierfür keine Einwohnerzahlen (getrennt nach männlich weiblich, hab mir aber auch noch nicht angesehen ob das so berechnet wird, aber anderes macht ja keinen sinn ....

edit: age group data ist nun auch drin

marlon360 commented 2 years ago

@Rubber1Duck Danke für deine Arbeit! Wie groß ist der Dump und wie aufwendig ist die Berechnung? Können wir das per GitHub Action regelmäßig in die Repo pushen?

Rubber1Duck commented 2 years ago

Der Dump ist zur Zeit ca 850 Megabyte (heute 869142564 byte). ist natürlich nen haufen schotter ..... die berechnung dauert auf einen raspi4 mit 4 gb speicher zur zeit ca 15 minuten, als github action rund 4 minuten. der updater ist ja ein submodule von meinem RD_RKI_COVID19_DATA repo ..... dort läuft auch eine solche action .... push in die rki-covid-api repo sollte funktionieren, und dann täglicher neustart? Was auch gehen würde du forkst mein repo. lässt dort actihub action die arbeit machen und holst die files dann aus diesen repo. so hättest du weiter alles in deiner hand. die files von meinem repo holen geht natürlich auch...... wie you will .....

HappyFr1tz commented 2 years ago

Gibt es mittlerweile was Neues? Auf die eine Idee von @Rubber1Duck ging man ja nicht weiter ein..

marlon360 commented 2 years ago

We are back online 🎉 Switched to Hetzner for hosting.

@Rubber1Duck Deine Lösung muss ich mir zu einem späteren Zeitpunkt nochmal anschauen.