The German NINA alerts endpoint hardcoded in modules/globalalert.py no longer exists in DNS — every poll fails, and with enableDEalerts = true the bot logs a warning each cycle forever. The direct government host works and is a drop-in replacement.
nina.api.proxy.bund.dev is NXDOMAIN from public resolvers (Google DoH Status: 3; Cloudflare same). The bund.dev community proxy appears to have been discontinued.
The direct host serves the identical API and answers today:
On a live deployment that had enableDEalerts on, this produced 700+ Error getting NINA DE alerts: ... Failed to resolve 'nina.api.proxy.bund.dev' warnings before it was noticed — the poll never backs off and nothing surfaces to the operator.
Suggested fix
Swap the base URL to https://warnung.bund.de/api31/ (drop-in, verified above).
Consider: get_nina_alerts currently returns NO_ALERTS ("No alerts found.") on any exception — a user checking emergency alerts can't distinguish "all clear" from "endpoint dead/unreachable". Returning ERROR_FETCHING_DATA on the exception path would keep failure visible.
Context
Found during a reliability audit of the bot's data-source commands (fork: Nursedude/meshing-around). Happy to send a PR for either or both.
## Summary
The German NINA alerts endpoint hardcoded in `modules/globalalert.py` no longer exists in DNS — every poll fails, and with `enableDEalerts = true` the bot logs a warning each cycle forever. The direct government host works and is a drop-in replacement.
## Evidence
`modules/globalalert.py`:
```python
url = ("https://nina.api.proxy.bund.dev/api31/dashboard/" + regionalKey + ".json")
```
- `nina.api.proxy.bund.dev` is **NXDOMAIN** from public resolvers (Google DoH `Status: 3`; Cloudflare same). The bund.dev community proxy appears to have been discontinued.
- The direct host serves the identical API and answers today:
```
$ curl -sI "https://warnung.bund.de/api31/dashboard/071380000000.json"
HTTP/2 200
```
On a live deployment that had `enableDEalerts` on, this produced 700+ `Error getting NINA DE alerts: ... Failed to resolve 'nina.api.proxy.bund.dev'` warnings before it was noticed — the poll never backs off and nothing surfaces to the operator.
## Suggested fix
1. Swap the base URL to `https://warnung.bund.de/api31/` (drop-in, verified above).
2. Consider: `get_nina_alerts` currently returns `NO_ALERTS` ("No alerts found.") on any exception — a user checking emergency alerts can't distinguish "all clear" from "endpoint dead/unreachable". Returning `ERROR_FETCHING_DATA` on the exception path would keep failure visible.
## Context
Found during a reliability audit of the bot's data-source commands (fork: Nursedude/meshing-around). Happy to send a PR for either or both.
<!-- github-sync-id:4822337803 -->
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
The German NINA alerts endpoint hardcoded in
modules/globalalert.pyno longer exists in DNS — every poll fails, and withenableDEalerts = truethe bot logs a warning each cycle forever. The direct government host works and is a drop-in replacement.Evidence
modules/globalalert.py:nina.api.proxy.bund.devis NXDOMAIN from public resolvers (Google DoHStatus: 3; Cloudflare same). The bund.dev community proxy appears to have been discontinued.On a live deployment that had
enableDEalertson, this produced 700+Error getting NINA DE alerts: ... Failed to resolve 'nina.api.proxy.bund.dev'warnings before it was noticed — the poll never backs off and nothing surfaces to the operator.Suggested fix
https://warnung.bund.de/api31/(drop-in, verified above).get_nina_alertscurrently returnsNO_ALERTS("No alerts found.") on any exception — a user checking emergency alerts can't distinguish "all clear" from "endpoint dead/unreachable". ReturningERROR_FETCHING_DATAon the exception path would keep failure visible.Context
Found during a reliability audit of the bot's data-source commands (fork: Nursedude/meshing-around). Happy to send a PR for either or both.
thanks dude