Getting it into your agent
It runs from inside its repository, so the clone comes first — what it calls does not travel with the file alone.
git clone --depth 1 https://github.com/cometchat/cometchat-skillsnpx agentmods add skills/cometchat/cometchat-skills/cometchat-flutter-v6-troubleshootingWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/cometchat/cometchat-skills/cometchat-flutter-v6-troubleshooting)<a href="https://agentmods.dev/skills/cometchat/cometchat-skills/cometchat-flutter-v6-troubleshooting"><img src="https://agentmods.dev/badge/skills/cometchat/cometchat-skills/cometchat-flutter-v6-troubleshooting/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/cometchat/cometchat-skills/cometchat-flutter-v6-troubleshooting"><img src="https://agentmods.dev/badge/skills/cometchat/cometchat-skills/cometchat-flutter-v6-troubleshooting.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00101 | $0.01606 |
| Opus 5.5 | $0.00040 | $0.00642 |
| Sonnet 5.5 | $0.00020 | $0.00321 |
| Haiku 4.5 | $0.00010 | $0.00161 |
Grade A, and why
cometchat-flutter-v6-troubleshooting scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 68 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Ground truth: every cause below was confirmed against the published 6.1.0 (compiler or documented behaviour). The live page is
/ui-kit/flutter/troubleshootingvia../cometchat-flutter-v6-core/references/docs-map.md. The deeper per-topic tables live in core'sreferences/troubleshooting.mdandreferences/anti-patterns.md— this skill is the entry point that ROUTES to the right one.
Companion skills (read first)
cometchat-flutter-v6-core— install, credentials,init→login→render, plus the reference tables this skill routes into. This skill ASSUMES it.
Use this skill when
Something is already built and is not working: a blank screen, a crash, an empty list, no ring, no notification.
Prerequisites & install
None — diagnosis only.
Triage in order (cheapest first)
- Does
flutter analyzepass? A stale v5 symbol or a wrong barrel import is a compile error, not a runtime mystery. - Did
initANDloginboth reachonSuccess? Log both. Most "blank chat" reports stop here. - Is the failing widget inside a bounded box? The second-most-common cause, and it is always the host's container.
- Is the thing you expect actually enabled — Dashboard toggle (extensions, moderation),
uiKit.enableCalling, a push provider? - Only then look at the kit.
Symptom → cause → fix
| Symptom | Cause | Fix |
|---|---|---|
| Blank/white chat screen | A widget built before login resolved |
Gate the first frame on init and login (lifecycle.md) |
Unable to load asset: cometchat-settings.json |
Not at project root, or not registered | Add under flutter: assets:, re-run flutter pub get |
| Crash on startup before any UI | WidgetsFlutterBinding.ensureInitialized() missing |
Call it first in main() — initFromSettings reads an asset |
RenderFlex … unbounded height |
A kit list in an unbounded parent | Expanded/Flexible, or a fixed height (layout.md) |
| List renders as a zero-height sliver | Same — content-driven parent | Same |
| Composer hidden by the keyboard | resizeToAvoidBottomInset: false, or nested Scaffolds |
Leave the default true; one Scaffold per screen |
| Header under the notch | No SafeArea |
Wrap the body |
| Two app bars | Your Scaffold AppBar + the widget's own |
hideAppbar: true on the list widget |
| Login fails instantly | Wrong Region, or the UID doesn't exist | Match the Dashboard region exactly; use a real UID (Dashboard → Users) |
| Works in debug, fails in release | Obfuscation, or the settings asset not bundled | Test the release build; verify the asset ships |
Undefined name 'CometChatIncomingCall' (any call widget) |
Only the chat barrel imported | Also import …/cometchat_calls_uikit.dart (-calls) |
| Call buttons never appear | Calls not enabled on BOTH sides | uiKit.enableCalling: true and cometchat_calls_sdk installed |
| Call surface opens black | Camera/mic permission missing, or a simulator | Add usage strings/permissions; test on a real device |
| Incoming call never shows (calling on) | No navigatorKey on the root MaterialApp — kit logs "Incoming call overlay cannot be shown" |
navigatorKey: CallNavigationContext.navigatorKey (-calls) |
| Two incoming-call screens | Own CallListener + CometChatIncomingCall on top of the kit's CallEventService overlay |
Remove yours — the kit presents it; customize via CallingConfiguration |
| Thread replies never send | parentMessageId without user:/group: |
Pass BOTH on the thread list and composer |
| Enabled extension doesn't appear | Expecting v5 registration | v6 auto-surfaces it; confirm the Dashboard toggle, add NO code |
| Push never arrives | No Dashboard provider, or registered before login | Configure the provider; register after login; re-register on refresh (-push) |
| Previous user still gets notifications | Push token never unregistered on logout | Unregister before logout() |
| Presence never updates | subscribePresenceForAllUsers false |
Set it true in the settings file |
| Messages only arrive on reopen | Socket not auto-connecting | chatSDK.autoEstablishSocketConnection: true |
| Duplicate events after hot restart | Listener not removed in dispose |
Pair every add with a remove (-events) |
The named parameter 'x' isn't defined on a kit widget |
Following a doc page that drifted | Trust the compiler; several Flutter pages had wrong signatures — check DOCS-BACKLOG.md PART 4 |
| Android build fails on minSdk | Below the floor (the docs' 24 is too low) | minSdk = 26 — forced by cometchat_calls_sdk, a hard dependency of the kit |
| iOS pod install fails | Deployment target too low | platform :ios, '15.1' (13.0 through calls-sdk 5.0.6), then pod install |
| Everything broke after upgrading | Mixed majors / removed v5 APIs | → cometchat-flutter-v6-migration; never mix majors |
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 1mo ago Changed · -824 lines · +30 tokens per session scan C → A aa22c2633ffc
- 1mo ago First seen · 892 lines · 71 tokens per session scan C 925e82fde928
cometchat-flutter-v6-troubleshooting is a skill published in the GitHub repository cometchat/cometchat-skills (150 stars, last pushed 6d ago), licensed MIT. It adds 101 tokens to every session and 1,606 once invoked, about $0.0004 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.
Other skills, from other repositories
firebase-crashlytics
Use when implementing crash reporting, capturing fatal/non-fatal errors, recording isolate/async exceptions, customizing reports, or uploading obfuscated symbols.
flutter-errors
Use when hitting layout errors (RenderFlex overflow, unbounded constraints, RenderBox not laid out), scroll errors, or setState-during-build errors.
ios-ettrace-profiler
Before invoking Apple-only binaries, confirm the execution context is macOS. From Windows or Linux, run those steps in a Mac SSH project or through an already configured remote transport; do not retry missing Apple binaries locally.
ios-memgraph-inspector
Before invoking Apple-only binaries, confirm the execution context is macOS. From Windows or Linux, run those steps in a Mac SSH project or through an already configured remote transport; do not retry missing Apple binaries locally.
tuist-generation-doctor
Diagnose Tuist generation, build, and launch failures when tuist generate, generated Xcode workspaces, or apps fail or diverge from the source project.
appstore-crash-insights
TestFlight crash reports: triage crashes, beta feedback, hangs, disk writes, launches, and performance diagnostics with asc.