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);