{"record":{"id":"bcdf67de48aa435a","repo":"quasarframework/quasar","slug":"received-a-response-for-an-unknown-message-id","errorCode":null,"errorMessage":"Received a response for an unknown message id: \"${message.id}\".","messagePattern":"Received a response for an unknown message id: \"(.+?)\"\\.","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"app-vite/exports/bex/private/bex-bridge.js","lineNumber":850,"sourceCode":"        type: 'chunk-abort'\n      }).catch(sendPacketErr => {\n        this.warn(\n          `Failed to send a chunk-abort message to \"${to}\".`,\n          sendPacketErr\n        )\n      })\n\n      throw err\n    })\n  }\n\n  #onMessage(message) {\n    if (message.type === 'event-response') {\n      const target = this.messageMap[message.id]\n\n      if (target === void 0) {\n        if (message.props.quiet !== true) {\n          this.warn(\n            `Received a response for an unknown message id: \"${message.id}\".`,\n            message\n          )\n        }\n        return\n      }\n\n      if (message.props.error !== void 0) {\n        target.reject(message.props.error)\n      } else {\n        target.resolve(message.payload)\n      }\n\n      return\n    }\n\n    if (message.type === 'event-send') {\n      this.#triggerMessageEvent({","sourceCodeStart":832,"sourceCodeEnd":868,"githubUrl":"https://github.com/quasarframework/quasar/blob/4841521b5f635a971eb9e2710e5542efd194691b/app-vite/exports/bex/private/bex-bridge.js#L832-L868","documentation":"An 'event-response' packet arrived but no pending promise in messageMap matches its id — the request it answers was already resolved/rejected (e.g. by timeout), the receiver restarted and lost its messageMap, or the response is a duplicate. Suppressed when the message was sent with props.quiet === true. Otherwise logged as a warning; the response is dropped.","triggerScenarios":"A bridge.send() promise already settled (timeout/caller gave up) and the late response arrives; the responding context answers a message id unknown locally (state lost after reload); duplicate responses sent for the same id.","commonSituations":"Slow handler responding after the requester's timeout; background service worker or content script reloaded mid-request; sending the same id twice from a custom sender.","solutions":["Ignore if benign (late response after timeout) — it's a warning, not a failure","Increase the caller-side timeout so slow handlers can answer while the promise is still pending","Ensure the responding side re-syncs state after reload instead of replying to pre-reload ids","Set props.quiet = true when firing responses whose requester may legitimately be gone"],"exampleFix":"// before: fixed short timeout discards late but valid responses\nconst res = await bridge.send('query', data) // times out at 1s\n// after: tolerate slow handlers (raise timeout) or mark quiet on responder side\nsetTimeout(() => controller.abort(), 10_000)","handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"try {\n  const res = await bridge.send('query', data)\n} catch (err) {\n  // includes timeouts: late responses later surface as\n  // \"unknown message id\" warnings and can be safely ignored\n  console.error('send failed', err)\n}","preventionTips":["Set caller timeouts longer than the slowest realistic handler","Avoid reloading/restarting contexts while requests are in flight","Send each response exactly once per request id","Ignore this warning for responses that arrive after a handled timeout"],"tags":["bex","browser-extension","ipc","stale-response"],"backgroundTag":"unknown-response-id","analyzedSha":"4841521b5f635a971eb9e2710e5542efd194691b","analyzedAt":"2026-08-30T01:13:14.944Z","schemaVersion":2},"datasetVersion":"2026-08-30T03:17:51.788Z"}