iOfficeAI/AionUi · warning · Error

Failed to flush feedback report${eventId ? ` (${eventId})` :

Error message

Failed to flush feedback report${eventId ? ` (${eventId})` : ''}

What it means

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`.

Source

Thrown at packages/desktop/src/renderer/services/feedback/submitFeedbackReport.ts:311

          message: eventSummary,
          extra: {
            description: normalizedDescription,
            ...input.extra,
          },
        },
        { attachments }
      );
    });

    if (input.flushTimeoutMs !== undefined) {
      const client = Sentry.getClient();
      if (!client) {
        throw new Error(`Failed to flush feedback report${eventId ? ` (${eventId})` : ''}: Sentry is not initialized`);
      }

      const flushed = await client.flush(input.flushTimeoutMs);
      if (!flushed) {
        throw new Error(`Failed to flush feedback report${eventId ? ` (${eventId})` : ''}`);
      }
    }

    logFeedbackReport('info', 'submitted', {
      module: input.module,
      eventId,
      collectLogs: Boolean(input.collectLogs),
      logAttachment: summarizeLogAttachment(logAttachmentStatus, logAttachment),
      dbDiagnosticsAttachment: summarizeDbDiagnosticsAttachment(dbDiagnosticsAttachmentStatus, dbDiagnosticsAttachment),
      attachmentCount: attachments.length,
      attachments: summarizeAttachments(attachments),
      flushTimeoutMs: input.flushTimeoutMs,
      tagKeys: Object.keys(input.tags ?? {}),
    });
  } catch (error) {
    logFeedbackReport('error', 'failed', {
      module: input.module,
      eventId,

View on GitHub (pinned to 711aa0550e)

Solutions

  1. Increase `flushTimeoutMs` to a realistic value (several seconds) especially when attachments are attached
  2. Check network reachability of the Sentry DSN host (proxy/firewall rules)
  3. Retry the submission once connectivity returns; consider queueing offline via Sentry's offline transport
  4. Trim heavy payload data (large base64 attachments) that slows the flush

Example fix

// before
const flushed = await client.flush(input.flushTimeoutMs);
if (!flushed) {
  throw new Error(`Failed to flush feedback report${eventId ? ` (${eventId})` : ''}`);
}

// after (retry once with a longer budget)
let flushed = await client.flush(input.flushTimeoutMs);
if (!flushed) flushed = await client.flush(input.flushTimeoutMs * 2);
if (!flushed) throw new Error(`Failed to flush feedback report${eventId ? ` (${eventId})` : ''}`);
Defensive patterns

Strategy: retry

Validate before calling

if (!navigator.onLine) { /* queue report, do not flush now */ }

Type guard

null

Try / catch

catch (e) { if (e.message.startsWith('Failed to flush feedback report')) { scheduleRetry(eventId); } }

Prevention

When it happens

Trigger: `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.

Common situations: 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.

Related errors


AI-assisted analysis of iOfficeAI/AionUi@711aa0550e (2026-08-28). Data as JSON: /api/errors/fe7b2857486cfda8. Report an issue: GitHub.