Skip to content

Require handler for abnormal finalization and use the handler in example apps. #740

@polina-c

Description

@polina-c

Developer of the app should be enforced to handle not-successfull cycle.

Expected behavior

Normal cycle:

  • user sends message
  • AI responds with one or more responses. The last response should be marked final by AI.

If something unexpected happened, application should:

  1. Show nice message to user
  2. Report technical details of the issue to the team via logs or other mechanism, if allowed by user

To make it easy for developer not to miss this handling, SDK should require to provide handler for abnormal finalization.

ai_primitives support finalization communication: #696

dartantic_ai most likely does not support it yet (should we create issue for them?)

Actual behaviour

If there are issues, simple chat example shows nothing to user and just logs the issue:

flutter: FINE: 2026-02-19 20:58:36.766807: Attempt 4/4 for POST https://generativelanguage.googleapis.com/v1beta/models/gemini-3-flash-preview:streamGenerateContent?alt=sse
flutter: WARNING: 2026-02-19 20:58:36.780738: HTTP error retry exhausted after 3 attempts for POST https://generativelanguage.googleapis.com/v1beta/models/gemini-3-flash-preview:streamGenerateContent?alt=sse: ClientException with SocketException: Connection failed (OS Error: Operation not permitted, errno = 1), address = generativelanguage.googleapis.com, port = 443, uri=https://generativelanguage.googleapis.com/v1beta/models/gemini-3-flash-preview:streamGenerateContent?alt=sse
flutter: FINE: 2026-02-19 20:58:36.781240: Finalizing streaming orchestrator
flutter: SEVERE: 2026-02-19 20:58:36.781372: Error generating content

Metadata

Metadata

Assignees

No one assigned

    Labels

    a: ergonomicsEfficiency and simplicity of the SDK adoption.front-line-handledCan wait until the second-line triage. The front-line triage already checked if it's a P0.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions