{"id":"44f54628-cb48-4286-be25-5b50130fb54e","shortId":"4HuVMN","kind":"skill","title":"cometchat-troubleshooting","tagline":"Diagnose and fix problems with a CometChat integration. Runs verify checks, detects drift, queries the docs MCP for symptom-to-cause lookups, and proposes targeted fixes. Works on any state — broken, missing, or drifted integrations.","description":"> **Companion skills:** `cometchat-core` is the authoritative source for\n> correct init, login, and provider patterns; `cometchat-customization`\n> explains why drift after customization is expected;\n> `cometchat-theming` covers the CSS variable cascade for\n> theme-not-applying symptoms.\n\n## Purpose\n\nThis skill teaches Claude how to diagnose CometChat integration problems\nsystematically. It explains what each diagnostic tool checks, what the\nknown failure modes are and why they happen, and how to distinguish\ninfrastructure problems (env vars, dashboard config, network) from code\nproblems (wrong init sequence, missing CSS import, drift).\n\n---\n\n## 1. Use this skill when\n\nThe user has a problem with their CometChat integration. Trigger phrases:\n\n- `/cometchat troubleshoot` (or invoke the cometchat-troubleshooting skill via your agent's mechanism — keyword \"cometchat troubleshoot\" or \"fix chat\" works in most agents)\n- `/cometchat fix`\n- `/cometchat fix <symptom>`\n- \"chat isn't loading\"\n- \"i'm getting a cometchat error\"\n- \"the chat is broken\"\n- \"blank screen on /chat\"\n- \"401 Unauthorized from cometchat\"\n- \"css-variables not loading\"\n- \"the chat doesn't show messages\"\n\n## 2. Docs MCP contract\n\nThe CometChat docs MCP at `cometchat-docs` is a **hard requirement** for\nthis skill. `cometchat doctor` handles the local diagnostic checks\n(integration state, drift, env vars, AST verify rules), but for any\nsymptom that doesn't match a doctor known-issue code, the MCP is the\ncanonical source for symptom → cause → fix.\n\n**Hard rules:**\n\n1. **Always run `cometchat doctor` first** — its known-issues table\n   covers the common failure modes (env-placeholder, env-missing, drift,\n   init-before-login, no-auth-key-in-source).\n2. **For symptoms NOT in doctor's table**, query the docs MCP with the\n   exact error message or symptom keywords. Never guess at the cause.\n3. **If the docs MCP is not installed**, STOP. Tell the user: \"Doctor\n   didn't recognize this symptom and I need the CometChat docs MCP to\n   diagnose further. Install it with `claude mcp add --transport http\n   cometchat-docs https://www.cometchat.com/docs/mcp` and re-run.\"\n4. **Never blame the user's code** if doctor + MCP both pass — the issue\n   is probably infrastructure (network, dashboard config, auth provider).\n5. **Canonical reference URL:**\n   https://www.cometchat.com/docs/ui-kit/react/troubleshooting\n\n---\n\n## 3. What `cometchat doctor` actually checks\n\nUnderstanding what doctor checks helps you interpret its output and\nknow when to look beyond it:\n\n1. **Detection** — reads `.cometchat/state.json` to confirm an\n   integration exists. If absent, reports `integrated: false`.\n\n2. **Env var checks** — reads the framework's env file (`.env` for\n   Vite/Astro/React Router, `.env.local` for Next.js). Checks each\n   `COMETCHAT_*` variable for:\n   - Presence (key exists in the file)\n   - Placeholder sentinels (`YOUR_*_HERE` still present = warning)\n\n3. **AST verify** — parses owned TypeScript files and runs 5 checks:\n   - `css_variables_imported_once` — counts\n     `@cometchat/chat-uikit-react/css-variables.css` imports (must be\n     exactly 1)\n   - `init_before_login` — confirms `login()` call sites appear after\n     `init()` resolves (in a `.then()` chain or after `await`)\n   - `render_gated_on_login_resolve` — checks that `createRoot().render()`\n     or JSX is not called at module top level before init completes\n   - `no_auth_key_in_source` — searches string literals for patterns\n     matching auth key format (should be in `.env`, not source)\n   - `error_ui_visible_on_failure` — confirms that catch handlers set\n     state variables that render visible error UI\n\n4. **Drift detection** — checksums each file in `state.files_owned`\n   against the originally applied template. Reports modified or missing\n   files.\n\n**When to go beyond doctor:** doctor passes but the app still shows a\nblank screen → likely SSR, network, or dashboard config. Doctor only\nchecks local code and env files.\n\n---\n\n## 4. Steps\n\n### Step 1 — Triage: read the project state\n\n```bash\nnpx @cometchat/skills-cli info --json\n```\n\nThree possible outcomes:\n\n| `info` says | Diagnosis | Next step |\n|---|---|---|\n| `integrated: false` | No integration exists | Check for **partial state** (below). If none, tell user to run `/cometchat` first and stop. |\n| `integrated: true, drift.has_drift: true` | User edited owned files | Step 2 + flag the drift |\n| `integrated: true, drift.has_drift: false` | Clean integration but something is broken | Step 2 |\n\nIf drift is detected, surface the modified file list verbatim. **Do not\nautomatically offer to restore** — drift after using\n`cometchat-customization` is expected and correct. Ask the user whether\nthe changes were intentional before suggesting any restore.\n\n### Step 1a — Partial-state recovery (aborted /cometchat runs)\n\n`info` returning `integrated: false` doesn't always mean the project is\nclean. `/cometchat` may have been started, errored out, or been\ninterrupted mid-flow, leaving the project in an inconsistent half-state.\nCheck these markers in parallel before offering to re-run from scratch:\n\n```bash\n# All four of these can exist independently after a partial run\ntest -f .cometchat/config.json && cat .cometchat/config.json\ngrep -l \"COMETCHAT_APP_ID\" .env .env.local 2>/dev/null\nfind src app -name \"CometChatProvider.*\" -o -name \"ChatDrawer.*\" 2>/dev/null\ngrep -rln \"@cometchat/chat-uikit-react\" src app 2>/dev/null | head -5\n```\n\nInterpret the combination:\n\n| Markers present | Likely state | Recovery |\n|---|---|---|\n| config.json exists, no `COMETCHAT_APP_ID` in env | Onboarding was started but app provisioning didn't finish | Re-run the provision step only: `npx @cometchat/skills-cli provision setup --app-id <id> --framework <k>` (or `--name <n>` for a new app) |\n| env has credentials, no config.json | Credentials were pasted manually but integration wasn't recorded | Run `npx @cometchat/skills-cli config init --json` to regenerate config.json from detect + env |\n| Provider/drawer files written, no CSS import, no provider mount | Integration code was partially written | Ask user whether to finish the integration (route through `/cometchat` resuming from the plan step) or delete the partial files and start clean |\n| CSS import present, no provider wired | CSS-only leftover from an earlier attempt | Delete the stray `css-variables.css` import or mount the provider — ask user |\n| All four present but `info` still says `integrated: false` | `.cometchat/state.json` was never written — the `/cometchat` flow skipped Step 8 (`state record`), so every Phase B command (`info`, `status`, `doctor`, `verify`, `uninstall`, `apply-theme`, etc.) thinks the project is un-integrated | Run `state record` to rebuild the state.json from what's on disk. Read the list of CometChat files the user has, then: `npx @cometchat/skills-cli state record --framework \"<fw>\" --placement \"<type>\" --placement-path \"<path>\" --auth-mode \"<mode>\" --files-owned \"<new-files>\" --files-patched \"<patched-files-with-patch-id>\" --json`. After this, `info` / `status` / `doctor` all work correctly. |\n\n**Rule:** always show the user which markers you found before proposing a\nrecovery path. Never delete config.json, env entries, or source files\nwithout explicit approval.\n\n### Step 2 — Run verify\n\n```bash\nnpx @cometchat/skills-cli verify --json\n```\n\nThis runs the AST checks. The output looks like:\n\n```json\n{\n  \"status\": \"fail\",\n  \"checks\": {\n    \"css_variables_imported_once\": { \"status\": \"fail\", \"reason\": \"...\" },\n    \"init_before_login\": { \"status\": \"pass\" },\n    ...\n  }\n}\n```\n\nFor each failed check, look up the fix in the table below or via the docs MCP.\n\n### Step 3 — Match symptom to known issues\n\nCommon doctor issue codes + verify failures and their fixes:\n\n| Issue code / failed check | Likely cause | Fix |\n|---|---|---|\n| `env-placeholder` | CometChat env vars still contain `YOUR_*_HERE` sentinels — user ran integration but never filled in real credentials | Open the env file doctor names (`.env` or `.env.local`) and replace each `YOUR_*_HERE` with the real value from https://app.cometchat.com → Your App → API & Auth Keys. This is the most common post-init failure. |\n| `env-missing` | A required CometChat env var key isn't in the env file at all | Run `cometchat apply --force-overwrite` to re-emit the placeholders, then fill them in. |\n| `drift-modified` | Owned files have been edited since apply | If the user used `cometchat-customization` or hand-edited intentionally, this is **expected** — not a bug. `cometchat info` flags it because the checksum changed. Only offer `cometchat apply --force` if the drift is accidental. **Ask before restoring** — force-apply destroys intentional customizations. |\n| `drift-missing` | An owned file was deleted | Run `cometchat apply --force` to recreate the missing file. |\n| `css_variables_imported_once` (count=0) | The css-variables.css import was removed | Re-add `@import url(\"@cometchat/chat-uikit-react/css-variables.css\");` to the top of `src/index.css` (or the per-framework target). For Astro, it goes inside the .tsx file, not the global CSS. |\n| `css_variables_imported_once` (count>1) | Imported in multiple places | Remove the duplicate. Keep only the one in the canonical location. |\n| `init_before_login` | Code calls `CometChatUIKit.login` before `CometChatUIKit.init` resolves | In the provider pattern (Next.js, Astro, React Router SSR): use `await init(settings)` followed by `await login()` sequentially inside `useEffect`. In the entry-file pattern (Vite/CRA): chain `init(settings).then(() => login()).then(() => mount())`. See `cometchat-core` section 6. |\n| `render_gated_on_login_resolve` | `createRoot(...).render` is called at top level, not inside a `mount()` function | Wrap render in `mount()` and call it only after `login()` resolves. For React island frameworks, gate render with `if (!user) return null`. |\n| `no_auth_key_in_source` | Auth Key hardcoded in a source file | Move it to `.env` and reference via the framework's env prefix (`import.meta.env.VITE_COMETCHAT_AUTH_KEY`, `process.env.NEXT_PUBLIC_COMETCHAT_AUTH_KEY`, etc.). |\n| `error_ui_visible_on_failure` | No visible error state rendered on init/login failure | In the component that calls `init()`/`login()`, add a catch handler that sets an error state, then render: `<div style={{ color: \"red\", padding: 16 }}>CometChat Error: {error}</div>`. The full pattern is in `cometchat-core` section 6 (CometChatProvider). |\n\nFor symptoms not in this table, proceed to Step 4.\n\n### Step 4 — Framework-specific patterns\n\nMany issues are framework-specific. Check against these common patterns:\n\n| Framework | Symptom | Likely cause | Fix |\n|---|---|---|---|\n| Next.js | Blank screen / hydration mismatch | CometChat components rendered on the server | Add `\"use client\"` to the file, or use `dynamic(() => import(...), { ssr: false })`. See `cometchat-core` section 5. |\n| Astro | Theme not applying | CSS override in a global `.css` file instead of inside the React island | Move `--cometchat-*` overrides inside `src/cometchat/ChatApp.tsx`. See `cometchat-theming` section 1. |\n| Astro | Components not rendering | Missing `client:only=\"react\"` directive | Add `client:only=\"react\"` to the island component in the `.astro` file. |\n| React Router v7 | `window is not defined` at build | CometChat imported in a module that runs on the server | Wrap in `React.lazy` + `Suspense` with a `ClientOnly` guard. See `cometchat-react-router-patterns` section 3. |\n| Vite / CRA | CSS variables not taking effect | Override block appears BEFORE the `@import` of css-variables.css | Reorder: the `@import` must come first, overrides must follow. |\n| Any | 401 Unauthorized | Wrong or expired auth key in `.env` | Check `.env` for `YOUR_AUTH_KEY_HERE`. Replace with real value from app.cometchat.com → API & Auth Keys. |\n| Any | `CometChat is not initialized` | Component renders before `init()` resolves | Use the provider pattern from `cometchat-core` section 6, or add an `isReady` gate before rendering CometChat components. |\n| Any (React 19) | `Cannot update a component (ForwardRef) while rendering a different component` | Known React 19 warning from CometChat UI Kit internals (`closePopover` calls setState during render). **Not a bug in your code.** | Ignore — this is a cosmetic warning from inside the UI Kit's minified bundle. The UI works correctly. Will be fixed in a future UI Kit release. Do NOT try to patch this in user code. |\n\n### Step 5 — Symptom-driven lookup via the docs MCP\n\nIf the user has reported a specific symptom that isn't covered by verify\nchecks or the framework table, query the CometChat docs MCP:\n\n```\nUse the cometchat-docs MCP to search for \"<symptom keywords>\"\n```\n\nCommon symptom searches:\n\n| Symptom | MCP search query |\n|---|---|\n| Blank screen at /chat | \"blank screen ssr nextjs\" or \"blank screen react-router\" |\n| 401 Unauthorized | \"401 unauthorized authentication\" |\n| Chat doesn't load | \"chat not loading init login\" |\n| Build error | \"<exact error message from build output>\" |\n| CORS error | \"cors origin allowed\" |\n| Mixed user/group error | \"user group same component\" |\n| Theme not applying | \"theming css variables override\" |\n\nThe docs MCP returns the canonical fix. Apply it as a targeted patch.\n\n### Step 6 — Propose the fix\n\nShow the user:\n1. What's broken (verify output, drift report, or symptom)\n2. The likely cause (from the table or docs MCP)\n3. The exact fix (file path + content change)\n4. Whether to:\n   - **Patch the specific issue** — targeted edit to the broken file.\n     Preferred for most issues.\n   - **Restore from the registry** — `cometchat apply --force` rewrites\n     all owned files back to their template state. Safe only if the\n     user hasn't customized them. **Ask first.**\n   - **Re-run the integration cleanly** — `cometchat uninstall --force`\n     followed by `/cometchat`. Wipes state.json and starts over. Last\n     resort.\n\nFor dashboard/network/auth issues, the fix is on the user's side\n(CometChat dashboard, .env values, network connectivity) — `cometchat\ndoctor` surfaces the issue and the fix verbatim. Don't try to \"fix\"\ninfrastructure issues from the CLI.\n\n### Step 7 — Verify the fix\n\nAfter any fix is applied, re-run:\n\n```bash\nnpx @cometchat/skills-cli verify --json\n```\n\nConfirm `status: \"pass\"`. If anything is still failing, repeat from Step 2.\n\n## Hard rules\n\n- Never apply a fix without showing the user what will change first.\n- Never invent error causes — query the docs MCP if you don't know.\n- Never blame the user's code if the verify checks are passing — the issue\n  is probably in the docs MCP territory (network, auth, dashboard config).\n- For drift, default to **showing** the drift and asking if it was\n  intentional, not auto-restoring. Drift after customization is expected.\n- Always use `npx @cometchat/skills-cli`.","tags":["cometchat","troubleshooting","skills","agent-skills","ai-agent","chat","claude-code","cursor","messaging","nextjs","react","react-native"],"capabilities":["skill","source-cometchat","skill-cometchat-troubleshooting","topic-agent-skills","topic-ai-agent","topic-chat","topic-claude-code","topic-cometchat","topic-cursor","topic-messaging","topic-nextjs","topic-react","topic-react-native","topic-ui-kit"],"categories":["cometchat-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/cometchat/cometchat-skills/cometchat-troubleshooting","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add cometchat/cometchat-skills","source_repo":"https://github.com/cometchat/cometchat-skills","install_from":"skills.sh"}},"qualityScore":"0.463","qualityRationale":"deterministic score 0.46 from registry signals: · indexed on github topic:agent-skills · 27 github stars · SKILL.md body (14,915 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T19:04:56.422Z","embedding":null,"createdAt":"2026-05-07T13:05:16.387Z","updatedAt":"2026-05-18T19:04:56.422Z","lastSeenAt":"2026-05-18T19:04:56.422Z","tsv":"'-5':824 '/chat':191,1888 '/cometchat':146,170,172,655,731,745,920,973,2038 '/dev/null':805,815,822 '/docs/mcp':366 '/docs/ui-kit/react/troubleshooting':399 '0':1313 '1':130,267,422,492,620,1353,1630,1955 '16':1527 '19':1768,1781 '1a':725 '2':207,300,436,669,685,804,814,821,1076,1965,2111 '3':325,400,471,1127,1686,1975 '4':371,569,617,1551,1553,1983 '401':192,1712,1899,1901 '5':393,480,1602,1836 '6':1417,1540,1756,1948 '7':2083 '8':977 'abort':730 'absent':432 'accident':1281 'actual':404 'add':358,1321,1511,1585,1640,1758 'agent':157,169 'allow':1919 'alway':268,739,1051,2186 'anyth':2104 'api':1191,1734 'app':597,800,808,820,837,845,862,870,1190 'app-id':861 'app.cometchat.com':1188,1733 'appear':500,1696 'appli':78,581,991,1222,1245,1275,1287,1301,1606,1929,1941,2005,2091,2115 'apply-them':990 'approv':1074 'ask':712,911,957,1282,2025,2172 'ast':238,472,1087 'astro':1337,1383,1603,1631,1650 'attempt':947 'auth':296,391,533,543,1033,1192,1458,1462,1483,1488,1717,1725,1735,2161 'auth-mod':1032 'authent':1903 'authorit':47 'auto':2179 'auto-restor':2178 'automat':698 'await':510,1388,1393 'b':983 'back':2011 'bash':626,780,1079,2095 'beyond':420,591 'blame':373,2140 'blank':188,601,1575,1885,1889,1894 'block':1695 'broken':35,187,683,1958,1994 'bug':1263,1795 'build':1660,1913 'bundl':1812 'call':498,524,1373,1426,1440,1508,1789 'cannot':1769 'canon':259,394,1367,1939 'cascad':73 'cat':795 'catch':559,1513 'caus':25,263,324,1147,1572,1968,2129 'chain':507,1405 'chang':717,1271,1982,2124 'chat':165,174,185,202,1904,1908 'chatdraw':813 'check':14,98,232,405,409,439,453,481,516,611,644,767,1088,1096,1112,1145,1564,1721,1859,2148 'checksum':572,1270 'claud':84,356 'clean':678,744,933,2032 'cli':2081 'client':1587,1636,1641 'clienton':1677 'closepopov':1788 'code':121,254,377,613,907,1136,1143,1372,1798,1834,2144 'color':1524 'combin':827 'come':1706 'cometchat':2,10,43,57,67,88,142,152,161,182,195,212,217,226,270,347,362,402,455,706,799,836,1017,1152,1208,1221,1251,1264,1274,1300,1414,1482,1487,1528,1537,1579,1599,1621,1627,1661,1681,1738,1753,1764,1784,1866,1872,2004,2033,2057,2063 'cometchat-cor':42,1413,1536,1598,1752 'cometchat-custom':56,705,1250 'cometchat-doc':216,361,1871 'cometchat-react-router-pattern':1680 'cometchat-them':66,1626 'cometchat-troubleshoot':1,151 'cometchat/chat-uikit-react':818 'cometchat/chat-uikit-react/css-variables.css':487,1324 'cometchat/config.json':794,796 'cometchat/skills-cli':628,858,887,1024,1081,2097,2189 'cometchat/state.json':425,968 'cometchatprovid':810,1541 'cometchatuikit.init':1376 'cometchatuikit.login':1374 'command':984 'common':280,1133,1198,1567,1878 'companion':40 'complet':531 'compon':1506,1580,1632,1647,1742,1765,1772,1778,1926 'config':118,390,608,888,2163 'config.json':833,875,893,1066 'confirm':427,496,557,2100 'connect':2062 'contain':1156 'content':1981 'contract':210 'cor':1915,1917 'core':44,1415,1538,1600,1754 'correct':50,711,1049,1816 'cosmet':1803 'count':486,1312,1352 'cover':69,278,1856 'cra':1688 'createroot':518,1423 'credenti':873,876,1168 'css':71,127,197,482,901,934,941,1097,1308,1347,1348,1607,1612,1689,1931 'css-on':940 'css-variabl':196 'css-variables.css':951,1315,1701 'custom':58,63,707,1252,1290,2023,2183 'dashboard':117,389,607,2058,2162 'dashboard/network/auth':2047 'default':2166 'defin':1658 'delet':927,948,1065,1298 'destroy':1288 'detect':15,423,571,689,895 'diagnos':4,87,351 'diagnosi':636 'diagnost':96,231 'didn':338,847 'differ':1777 'direct':1639 'disk':1012 'distinguish':112 'div':1522 'doc':19,208,213,218,310,328,348,363,1124,1843,1867,1873,1935,1973,2132,2157 'doctor':227,250,271,305,337,379,403,408,592,593,609,987,1046,1134,1173,2064 'doesn':203,246,737,1905 'drift':16,38,61,129,235,289,570,662,672,676,687,702,1237,1279,1292,1961,2165,2170,2181 'drift-miss':1291 'drift-modifi':1236 'drift.has':661,675 'driven':1839 'duplic':1360 'dynam':1593 'earlier':946 'edit':665,1243,1256,1991 'effect':1693 'emit':1229 'entri':1068,1401 'entry-fil':1400 'env':115,236,284,287,437,444,446,549,615,802,840,871,896,1067,1150,1153,1171,1175,1204,1209,1216,1472,1479,1720,1722,2059 'env-miss':286,1203 'env-placehold':283,1149 'env.local':450,803,1177 'error':183,315,552,567,750,1491,1498,1518,1529,1530,1914,1916,1922,2128 'etc':993,1490 'everi':981 'exact':314,491,1977 'exist':430,460,643,786,834 'expect':65,709,1260,2185 'expir':1716 'explain':59,93 'explicit':1073 'f':793 'fail':1095,1102,1111,1144,2107 'failur':102,281,556,1138,1202,1495,1503 'fals':435,640,677,736,967,1596 'file':445,463,477,574,587,616,667,693,898,930,1018,1036,1039,1071,1172,1217,1240,1296,1307,1343,1402,1468,1590,1613,1651,1979,1995,2010 'files-own':1035 'files-patch':1038 'fill':1165,1233 'find':806 'finish':849,915 'first':272,656,1707,2026,2125 'fix':6,30,164,171,173,264,1116,1141,1148,1573,1819,1940,1951,1978,2050,2070,2076,2086,2089,2117 'flag':670,1266 'flow':757,974 'follow':1391,1710,2036 'forc':1224,1276,1286,1302,2006,2035 'force-appli':1285 'force-overwrit':1223 'format':545 'forwardref':1773 'found':1058 'four':782,960 'framework':442,864,1027,1334,1449,1477,1555,1562,1569,1862 'framework-specif':1554,1561 'full':1532 'function':1434 'futur':1822 'gate':512,1419,1450,1761 'get':180 'global':1346,1611 'go':590 'goe':1339 'grep':797,816 'group':1924 'guard':1678 'guess':321 'half':765 'half-stat':764 'hand':1255 'hand-edit':1254 'handl':228 'handler':560,1514 'happen':108 'hard':221,265,2112 'hardcod':1464 'hasn':2021 'head':823 'help':410 'http':360 'hydrat':1577 'id':801,838,863 'ignor':1799 'import':128,484,488,902,935,952,1099,1310,1316,1322,1350,1354,1594,1662,1699,1704 'import.meta.env.vite':1481 'inconsist':763 'independ':787 'info':629,634,733,963,985,1044,1265 'infrastructur':113,387,2077 'init':51,124,291,493,502,530,889,1104,1201,1369,1389,1406,1509,1745,1911 'init-before-login':290 'init/login':1502 'initi':1741 'insid':1340,1396,1431,1616,1623,1806 'instal':332,353 'instead':1614 'integr':11,39,89,143,233,429,434,639,642,659,673,679,735,881,906,917,966,1000,1162,2031 'intent':719,1257,1289,2176 'intern':1787 'interpret':412,825 'interrupt':754 'invent':2127 'invok':149 'island':1448,1619,1646 'isn':175,1212,1854 'isreadi':1760 'issu':253,276,384,1132,1135,1142,1559,1989,1999,2048,2067,2078,2152 'json':630,890,1041,1083,1093,2099 'jsx':521 'keep':1361 'key':297,459,534,544,1193,1211,1459,1463,1484,1489,1718,1726,1736 'keyword':160,319 'kit':1786,1809,1824 'know':416,2138 'known':101,252,275,1131,1779 'known-issu':251,274 'l':798 'last':2044 'leav':758 'leftov':943 'level':528,1429 'like':603,830,1092,1146,1571,1967 'list':694,1015 'liter':539 'load':177,200,1907,1910 'local':230,612 'locat':1368 'login':52,293,495,497,514,1106,1371,1394,1409,1421,1444,1510,1912 'look':419,1091,1113 'lookup':26,1840 'm':179 'mani':1558 'manual':879 'marker':769,828,1056 'match':248,542,1128 'may':746 'mcp':20,209,214,256,311,329,349,357,380,1125,1844,1868,1874,1882,1936,1974,2133,2158 'mean':740 'mechan':159 'messag':206,316 'mid':756 'mid-flow':755 'minifi':1811 'mismatch':1578 'miss':36,126,288,586,1205,1293,1306,1635 'mix':1920 'mode':103,282,1034 'modifi':584,692,1238 'modul':526,1665 'mount':905,954,1411,1433,1438 'move':1469,1620 'multipl':1356 'must':489,1705,1709 'name':809,812,866,1174 'need':345 'network':119,388,605,2061,2160 'never':320,372,970,1064,1164,2114,2126,2139 'new':869 'next':637 'next.js':452,1382,1574 'nextj':1892 'no-auth-key-in-sourc':294 'none':650 'npx':627,857,886,1023,1080,2096,2188 'null':1456 'o':811 'offer':699,773,1273 'onboard':841 'one':1364 'open':1169 'origin':580,1918 'outcom':633 'output':414,1090,1960 'overrid':1608,1622,1694,1708,1933 'overwrit':1225 'own':475,577,666,1037,1239,1295,2009 'pad':1526 'parallel':771 'pars':474 'partial':646,727,790,909,929 'partial-st':726 'pass':382,594,1108,2102,2150 'past':878 'patch':1040,1830,1946,1986 'path':1031,1063,1980 'pattern':55,541,1381,1403,1533,1557,1568,1684,1750 'per':1333 'per-framework':1332 'phase':982 'phrase':145 'place':1357 'placehold':285,464,1151,1231 'placement':1028,1030 'placement-path':1029 'plan':924 'possibl':632 'post':1200 'post-init':1199 'prefer':1996 'prefix':1480 'presenc':458 'present':469,829,936,961 'probabl':386,2154 'problem':7,90,114,122,139 'proceed':1548 'process.env.next':1485 'project':624,742,760,996 'propos':28,1060,1949 'provid':54,392,904,938,956,1380,1749 'provider/drawer':897 'provis':846,854,859 'public':1486 'purpos':80 'queri':17,308,1864,1884,2130 'ran':1161 're':369,776,851,1228,1320,2028,2093 're-add':1319 're-emit':1227 're-run':368,775,850,2027,2092 'react':1384,1447,1618,1638,1643,1652,1682,1767,1780,1897 'react-rout':1896 'react.lazy':1673 'read':424,440,622,1013 'real':1167,1185,1730 'reason':1103 'rebuild':1005 'recogn':340 'record':884,979,1003,1026 'recoveri':729,832,1062 'recreat':1304 'red':1525 'refer':395,1474 'regener':892 'registri':2003 'releas':1825 'remov':1318,1358 'render':511,519,565,1418,1424,1436,1451,1500,1521,1581,1634,1743,1763,1775,1792 'reorder':1702 'repeat':2108 'replac':1179,1728 'report':433,583,1849,1962 'requir':222,1207 'resolv':503,515,1377,1422,1445,1746 'resort':2045 'restor':701,723,1284,2000,2180 'resum':921 'return':734,1455,1937 'rewrit':2007 'rln':817 'rout':918 'router':449,1385,1653,1683,1898 'rule':240,266,1050,2113 'run':12,269,370,479,654,732,777,791,852,885,1001,1077,1085,1220,1299,1667,2029,2094 'safe':2016 'say':635,965 'scratch':779 'screen':189,602,1576,1886,1890,1895 'search':537,1876,1880,1883 'section':1416,1539,1601,1629,1685,1755 'see':1412,1597,1625,1679 'sentinel':465,1159 'sequenc':125 'sequenti':1395 'server':1584,1670 'set':561,1390,1407,1516 'setstat':1790 'setup':860 'show':205,599,1052,1952,2119,2168 'side':2056 'sinc':1244 'site':499 'skill':41,82,133,154,225 'skill-cometchat-troubleshooting' 'skip':975 'someth':681 'sourc':48,260,299,536,551,1070,1461,1467 'source-cometchat' 'specif':1556,1563,1851,1988 'src':807,819 'src/cometchat/chatapp.tsx':1624 'src/index.css':1329 'ssr':604,1386,1595,1891 'start':749,843,932,2042 'state':34,234,562,625,647,728,766,831,978,1002,1025,1499,1519,2015 'state.files':576 'state.json':1007,2040 'status':986,1045,1094,1101,1107,2101 'step':618,619,638,668,684,724,855,925,976,1075,1126,1550,1552,1835,1947,2082,2110 'still':468,598,964,1155,2106 'stop':333,658 'stray':950 'string':538 'style':1523 'suggest':721 'surfac':690,2065 'suspens':1674 'symptom':23,79,244,262,302,318,342,1129,1543,1570,1838,1852,1879,1881,1964 'symptom-driven':1837 'symptom-to-caus':22 'systemat':91 'tabl':277,307,1119,1547,1863,1971 'take':1692 'target':29,1335,1945,1990 'teach':83 'tell':334,651 'templat':582,2014 'territori':2159 'test':792 'theme':68,76,992,1604,1628,1927,1930 'theme-not-appli':75 'think':994 'three':631 'tool':97 'top':527,1327,1428 'topic-agent-skills' 'topic-ai-agent' 'topic-chat' 'topic-claude-code' 'topic-cometchat' 'topic-cursor' 'topic-messaging' 'topic-nextjs' 'topic-react' 'topic-react-native' 'topic-ui-kit' 'transport':359 'tri':1828,2074 'triag':621 'trigger':144 'troubleshoot':3,147,153,162 'true':660,663,674 'tsx':1342 'typescript':476 'ui':553,568,1492,1785,1808,1814,1823 'un':999 'un-integr':998 'unauthor':193,1713,1900,1902 'understand':406 'uninstal':989,2034 'updat':1770 'url':396,1323 'use':131,704,1249,1387,1586,1592,1747,1869,2187 'useeffect':1397 'user':136,336,375,652,664,714,912,958,1020,1054,1160,1248,1454,1833,1847,1923,1954,2020,2054,2121,2142 'user/group':1921 'v7':1654 'valu':1186,1731,2060 'var':116,237,438,1154,1210 'variabl':72,198,456,483,563,1098,1309,1349,1690,1932 'verbatim':695,2071 'verifi':13,239,473,988,1078,1082,1137,1858,1959,2084,2098,2147 'via':155,1122,1475,1841 'visibl':554,566,1493,1497 'vite':1687 'vite/astro/react':448 'vite/cra':1404 'warn':470,1782,1804 'wasn':882 'whether':715,913,1984 'window':1655 'wipe':2039 'wire':939 'without':1072,2118 'work':31,166,1048,1815 'wrap':1435,1671 'written':899,910,971 'wrong':123,1714 'www.cometchat.com':365,398 'www.cometchat.com/docs/mcp':364 'www.cometchat.com/docs/ui-kit/react/troubleshooting':397","prices":[{"id":"80430001-bf42-4aba-b845-41b149b1ef19","listingId":"44f54628-cb48-4286-be25-5b50130fb54e","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"cometchat","category":"cometchat-skills","install_from":"skills.sh"},"createdAt":"2026-05-07T13:05:16.387Z"}],"sources":[{"listingId":"44f54628-cb48-4286-be25-5b50130fb54e","source":"github","sourceId":"cometchat/cometchat-skills/cometchat-troubleshooting","sourceUrl":"https://github.com/cometchat/cometchat-skills/tree/main/skills/cometchat-troubleshooting","isPrimary":false,"firstSeenAt":"2026-05-07T13:05:16.387Z","lastSeenAt":"2026-05-18T19:04:56.422Z"}],"details":{"listingId":"44f54628-cb48-4286-be25-5b50130fb54e","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"cometchat","slug":"cometchat-troubleshooting","github":{"repo":"cometchat/cometchat-skills","stars":27,"topics":["agent-skills","ai-agent","chat","claude-code","cometchat","cursor","messaging","nextjs","react","react-native","ui-kit"],"license":null,"html_url":"https://github.com/cometchat/cometchat-skills","pushed_at":"2026-05-18T05:04:24Z","description":"Add CometChat chat to any React, Next.js, React Native, Angular, Android, iOS, or Flutter project through your AI coding agent. Works with Claude Code, Cursor, Codex, VS Code Copilot, Windsurf, Cline, Kiro, and 50+ more agents.","skill_md_sha":"e5cafc5a1efe2525f6cc7910db53154d21f5f20e","skill_md_path":"skills/cometchat-troubleshooting/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/cometchat/cometchat-skills/tree/main/skills/cometchat-troubleshooting"},"layout":"multi","source":"github","category":"cometchat-skills","frontmatter":{"name":"cometchat-troubleshooting","license":"MIT","description":"Diagnose and fix problems with a CometChat integration. Runs verify checks, detects drift, queries the docs MCP for symptom-to-cause lookups, and proposes targeted fixes. Works on any state — broken, missing, or drifted integrations.","compatibility":"Node.js >=18; @cometchat/chat-uikit-react ^6"},"skills_sh_url":"https://skills.sh/cometchat/cometchat-skills/cometchat-troubleshooting"},"updatedAt":"2026-05-18T19:04:56.422Z"}}