{"record":{"id":"f998ed4d7fc13d85","repo":"ruvnet/ruflo","slug":"unknown-inbox-message-messageid-for-audience","errorCode":null,"errorMessage":"unknown inbox message ${messageId} for ${audience}","messagePattern":"unknown inbox message (.+?) for (.+?)","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"v3/@claude-flow/codex/src/harness/in-memory-inbox-reference.ts","lineNumber":138,"sourceCode":"    const now = this.now();\n    for (const record of this.records) {\n      if (\n        BigInt(record.cursor) > after\n        && record.message.audience === audience\n        && (record.message.expiresAt === undefined || Date.parse(record.message.expiresAt) > now)\n      ) {\n        yield clone(record.message);\n      }\n    }\n  }\n\n  acknowledge(audience: string, messageId: string, issuer?: string): void {\n    const matches = this.records.filter(\n      (candidate) => candidate.message.audience === audience\n        && candidate.message.messageId === messageId\n        && (issuer === undefined || candidate.message.issuer === issuer),\n    );\n    if (!matches.length) throw new Error(`unknown inbox message ${messageId} for ${audience}`);\n    if (matches.length > 1) throw new Error(`ambiguous inbox message ${messageId}; issuer is required`);\n    const record = matches[0]!;\n    if (record.acknowledgedAt === undefined) record.acknowledgedAt = new Date(this.now()).toISOString();\n  }\n\n  pending(audience: string): InMemoryInboxRecord[] {\n    return this.records\n      .filter((record) => record.message.audience === audience && record.acknowledgedAt === undefined)\n      .map(clone);\n  }\n\n  quarantineRecords(): InMemoryQuarantinedMessage[] {\n    return this.quarantined.map(clone);\n  }\n\n  private parseCursor(cursor: string): bigint {\n    try {\n      return parseCanonicalUnsigned(cursor, 'inbox cursor');","sourceCodeStart":120,"sourceCodeEnd":156,"githubUrl":"https://github.com/ruvnet/ruflo/blob/fa13ee4ad60ac2090b1480656eb233521790d640/v3/@claude-flow/codex/src/harness/in-memory-inbox-reference.ts#L120-L156","documentation":"Thrown when acknowledging or reading a message ID unknown for the given audience. Defense: only act on IDs obtained from a prior poll for that same audience, and tolerate messages expiring between poll and ack.","triggerScenarios":"Thrown at v3/@claude-flow/codex/src/harness/in-memory-inbox-reference.ts:138 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Check the inbox listing for the audience and use an existing messageId.","Account for message expiry: re-post the message if it has been evicted.","Verify the audience matches the audience the message was posted for."],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"fa13ee4ad60ac2090b1480656eb233521790d640","analyzedAt":"2026-08-18T21:34:22.708Z","contentChangedAt":"2026-08-18T21:34:22.708Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}