{"record":{"id":"fe7b2857486cfda8","repo":"iOfficeAI/AionUi","slug":"failed-to-flush-feedback-report-eventid-ev-fe7b28","errorCode":null,"errorMessage":"Failed to flush feedback report${eventId ? ` (${eventId})` : ''}","messagePattern":"Failed to flush feedback report(.+?)\\)` : ''\\}","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"warning","filePath":"packages/desktop/src/renderer/services/feedback/submitFeedbackReport.ts","lineNumber":311,"sourceCode":"          message: eventSummary,\n          extra: {\n            description: normalizedDescription,\n            ...input.extra,\n          },\n        },\n        { attachments }\n      );\n    });\n\n    if (input.flushTimeoutMs !== undefined) {\n      const client = Sentry.getClient();\n      if (!client) {\n        throw new Error(`Failed to flush feedback report${eventId ? ` (${eventId})` : ''}: Sentry is not initialized`);\n      }\n\n      const flushed = await client.flush(input.flushTimeoutMs);\n      if (!flushed) {\n        throw new Error(`Failed to flush feedback report${eventId ? ` (${eventId})` : ''}`);\n      }\n    }\n\n    logFeedbackReport('info', 'submitted', {\n      module: input.module,\n      eventId,\n      collectLogs: Boolean(input.collectLogs),\n      logAttachment: summarizeLogAttachment(logAttachmentStatus, logAttachment),\n      dbDiagnosticsAttachment: summarizeDbDiagnosticsAttachment(dbDiagnosticsAttachmentStatus, dbDiagnosticsAttachment),\n      attachmentCount: attachments.length,\n      attachments: summarizeAttachments(attachments),\n      flushTimeoutMs: input.flushTimeoutMs,\n      tagKeys: Object.keys(input.tags ?? {}),\n    });\n  } catch (error) {\n    logFeedbackReport('error', 'failed', {\n      module: input.module,\n      eventId,","sourceCodeStart":293,"sourceCodeEnd":329,"githubUrl":"https://github.com/iOfficeAI/AionUi/blob/711aa0550ee183ea495dc33e2c05c7943b70a60a/packages/desktop/src/renderer/services/feedback/submitFeedbackReport.ts#L293-L329","documentation":"Sentry's `client.flush(timeout)` resolves `false` when not all queued events could be sent within the timeout. This error signals the feedback report was accepted locally but not confirmed delivered to Sentry before the deadline — usually network slowness or a too-short `flushTimeoutMs`.","triggerScenarios":"`submitFeedbackReport` invoked with a `flushTimeoutMs`; `client.flush(input.flushTimeoutMs)` resolves `false` because the transport (network request to Sentry DSN) did not drain within the timeout, or the client is offline.","commonSituations":"Offline or flaky network at submission time; flushTimeoutMs set too low for large payloads (screenshots/attachments); Sentry endpoint blocked by firewall/proxy; high event volume backing up the transport buffer.","solutions":["Increase `flushTimeoutMs` to a realistic value (several seconds) especially when attachments are attached","Check network reachability of the Sentry DSN host (proxy/firewall rules)","Retry the submission once connectivity returns; consider queueing offline via Sentry's offline transport","Trim heavy payload data (large base64 attachments) that slows the flush"],"exampleFix":"// before\nconst flushed = await client.flush(input.flushTimeoutMs);\nif (!flushed) {\n  throw new Error(`Failed to flush feedback report${eventId ? ` (${eventId})` : ''}`);\n}\n\n// after (retry once with a longer budget)\nlet flushed = await client.flush(input.flushTimeoutMs);\nif (!flushed) flushed = await client.flush(input.flushTimeoutMs * 2);\nif (!flushed) throw new Error(`Failed to flush feedback report${eventId ? ` (${eventId})` : ''}`);","handlingStrategy":"retry","validationCode":"if (!navigator.onLine) { /* queue report, do not flush now */ }","typeGuard":"null","tryCatchPattern":"catch (e) { if (e.message.startsWith('Failed to flush feedback report')) { scheduleRetry(eventId); } }","preventionTips":["Use a generous flushTimeoutMs (>=5s) when attachments are present","Retry once after reconnect before surfacing failure"],"tags":["sentry","telemetry","flush","network-timeout"],"backgroundTag":"sentry-flush-timeout","analyzedSha":"711aa0550ee183ea495dc33e2c05c7943b70a60a","analyzedAt":"2026-08-28T07:56:06.558Z","schemaVersion":2},"datasetVersion":"2026-08-28T11:17:15.048Z"}