The situation:

Using @axiomhq/pino in Koa Node servers: during an hour-long Axiom ingestion outage, unhandled network errors thrown from axiom.ingest crashed the servers (Sentry showed `Error FetchClient.[anonymous] ... Service Unavailable` thrown at the program root). The same crash happens with an expired or invalid API token. Wrapping with pino hooks did not help because ingest's promise is not returned by the log function.

What actually fixes it (verified in the thread):

The SDK did not catch network errors from ingest, so any ingestion failure (outage, expired/invalid token) became an uncaught exception that took down the process. Maintainers released new versions of @axiomhq/js and @axiomhq/pino that catch ingestion exceptions internally (surfacing them via console.error instead of crashing) and added an onError() handler to the js SDK for routing errors to your own handler. Upgrade both packages. One caveat from the thread: the onError option is supported on the js SDK; pino runs its transport in a worker thread where passing a function callback through postMessage is not possible, so pino-side errors surface via console logging for now.