diff --git a/src/discordas.ts b/src/discordas.ts index 96ca2b664b7c94f824ed57323a51362862230aef..5cd3cb667281a11a6d6e970a03960432b35fab87 100644 --- a/src/discordas.ts +++ b/src/discordas.ts @@ -33,7 +33,7 @@ import { Log } from "./log"; import "source-map-support/register"; import { MetricPeg, PrometheusBridgeMetrics } from "./metrics"; import { IMatrixEvent } from "./matrixtypes"; -import { isInstanceOfTypes } from "./util"; +import { wrapError, isInstanceOfTypes } from "./util"; const log = new Log("DiscordAS"); @@ -128,6 +128,12 @@ async function run(port: number, fileConfig: DiscordBridgeConfig) { request.outcomeFrom(callbackResult); } catch (err) { logOnEventError(err); + + // Raise bridge errors in case of an unexpected error, too. + if (!(err instanceof Unstable.EventNotHandledError)) { + err = wrapError(err, Unstable.InternalError); + } + request.reject(err); } finally { recordRequestOutcome(request);