diff --git a/changelog.d/869.bugfix b/changelog.d/869.bugfix
new file mode 100644
index 0000000000000000000000000000000000000000..e723503a9bca3253c8027a209aabbeeca7d50923
--- /dev/null
+++ b/changelog.d/869.bugfix
@@ -0,0 +1 @@
+Fix a crash caused by processing metrics for Matrix events.
\ No newline at end of file
diff --git a/src/metrics.ts b/src/metrics.ts
index 4be179a3389b583d380095688b6613ca2fb81c4e..2a64a24cf46d155603a218b43d677f0142bca0dd 100644
--- a/src/metrics.ts
+++ b/src/metrics.ts
@@ -69,7 +69,7 @@ export class PrometheusBridgeMetrics implements IBridgeMetrics {
     private remoteRequest: Histogram<string>;
     private matrixRequest: Histogram<string>;
     private requestsInFlight: Map<string, number>;
-    private matrixRequestStatus: Map<string, "success"|"failed">;
+    private matrixRequestStatus: Map<string, "success"|"failed"> = new Map();
     private httpServer: http.Server;
     private remoteMonthlyActiveUsers: Gauge<string>;
     private bridgeBlocked: Gauge<string>;
@@ -116,7 +116,7 @@ export class PrometheusBridgeMetrics implements IBridgeMetrics {
 
         this.matrixRequest = new Histogram({
             help: "Histogram of processing durations of received Matrix messages",
-            labelNames: ["outcome"],
+            labelNames: ["outcome", "method"],
             name: "matrix_request_seconds",
         });
         register.registerMetric(this.matrixRequest);
@@ -208,7 +208,7 @@ export class PrometheusBridgeMetrics implements IBridgeMetrics {
         this.matrixRequestStatus.delete(context.uniqueId);
         this.matrixRequest.observe({
             method: context.functionName,
-            result: successFail,
+            outcome: successFail,
         }, timeMs);
     }