← Back to Kontasks
Bug Fix: Kontask Card Rendering Hang
Investigation and fix for kontask cards not rendering in console
Output
🔧 Bug Fix: Kontask Card Rendering Hang
🐛 Issue
Kontask notification badge appeared (showing "16") but card never rendered in console log. Console hung at "Creating kontask..." until manual page reload.
🔍 Root Cause
Claude sometimes doesn't include requestId in kontask context when creating it, despite prompt instructions.
Result:
- Turn completes with "✅ Done"
turn_endreceived by clientcheckForNewKontask()fetches by requestId- No match found because kontask lacks requestId
- Client sees "Creating kontask..." forever
✅ Fix Implemented
Server-side auto-injection of requestId from active turn tracking into kontask creation if not provided by Claude.
Files Modified:
konui/src/console-websocket.ts
+ Added getActiveRequestIdForUser() method
konui/src/router.ts
+ Added auto-injection logic in kontask creation endpoint
🔄 How It Works
// router.ts - kontask creation endpoint if (username && body.context) { const activeRequestId = consoleWebSocket .getActiveRequestIdForUser(username); if (activeRequestId && !body.context.requestId) { body.context.requestId = activeRequestId; // Log for debugging } }
✓ Status: Deployed
Fix is live. Konui service restarted. This kontask itself tests the fix - if you're seeing this card, it worked!
Quick Actions
Original Request
No layout configured
Details
Type
General
Status
Completed
Scope
vibetools
Tags
kontasksconsolebug-fix
Created
8 Jan 2026, 10:59 pm
Updated
8 Jan 2026, 10:59 pm
Created By
claude
Raw Data
{
"id": "ebe37b95-8469-4b84-8b57-bf825c2a349b",
"type": "general",
"status": "completed",
"title": "Bug Fix: Kontask Card Rendering Hang",
"description": "Investigation and fix for kontask cards not rendering in console",
"context": {
"output": "<div style=\"background:#1e1e1e;color:#e0e0e0;padding:20px;border-radius:8px;font-family:'Consolas','Monaco',monospace;\">\n<h2 style=\"font-family:sans-serif;color:#fff;margin:0 0 16px 0;\">🔧 Bug Fix: Kontask Card Rendering Hang</h2>\n\n<div style=\"background:#2d2d2d;padding:16px;border-radius:6px;margin-bottom:16px;\">\n<h3 style=\"color:#f59e0b;margin:0 0 12px 0;\">🐛 Issue</h3>\n<p style=\"margin:0;line-height:1.6;\">Kontask notification badge appeared (showing \"16\") but card never rendered in console log. Console hung at <code style=\"background:#3d3d3d;padding:2px 6px;border-radius:4px;\">\"Creating kontask...\"</code> until manual page reload.</p>\n</div>\n\n<div style=\"background:#2d2d2d;padding:16px;border-radius:6px;margin-bottom:16px;\">\n<h3 style=\"color:#ef4444;margin:0 0 12px 0;\">🔍 Root Cause</h3>\n<p style=\"margin:0 0 12px 0;line-height:1.6;\">Claude sometimes doesn't include <code style=\"background:#3d3d3d;padding:2px 6px;border-radius:4px;\">requestId</code> in kontask context when creating it, despite prompt instructions.</p>\n<p style=\"margin:0;line-height:1.6;\"><strong style=\"color:#fff;\">Result:</strong></p>\n<ol style=\"margin:8px 0 0 0;padding-left:24px;line-height:1.8;\">\n<li>Turn completes with \"✅ Done\"</li>\n<li><code style=\"background:#3d3d3d;padding:2px 6px;border-radius:4px;\">turn_end</code> received by client</li>\n<li><code style=\"background:#3d3d3d;padding:2px 6px;border-radius:4px;\">checkForNewKontask()</code> fetches by requestId</li>\n<li><span style=\"color:#ef4444;\">No match found</span> because kontask lacks requestId</li>\n<li>Client sees \"Creating kontask...\" forever</li>\n</ol>\n</div>\n\n<div style=\"background:#2d2d2d;padding:16px;border-radius:6px;margin-bottom:16px;\">\n<h3 style=\"color:#22c55e;margin:0 0 12px 0;\">✅ Fix Implemented</h3>\n<p style=\"margin:0 0 12px 0;line-height:1.6;\"><strong style=\"color:#fff;\">Server-side auto-injection</strong> of requestId from active turn tracking into kontask creation if not provided by Claude.</p>\n\n<div style=\"background:#1e1e1e;padding:12px;border-radius:4px;margin-top:12px;\">\n<p style=\"color:#7f848e;margin:0 0 8px 0;font-size:0.9em;\">Files Modified:</p>\n<pre style=\"margin:0;color:#e5c07b;\">konui/src/console-websocket.ts</pre>\n<p style=\"color:#7f848e;margin:4px 0;font-size:0.85em;\">+ Added <code style=\"color:#98c379;\">getActiveRequestIdForUser()</code> method</p>\n<pre style=\"margin:8px 0 0 0;color:#e5c07b;\">konui/src/router.ts</pre>\n<p style=\"color:#7f848e;margin:4px 0;font-size:0.85em;\">+ Added auto-injection logic in kontask creation endpoint</p>\n</div>\n</div>\n\n<div style=\"background:#2d2d2d;padding:16px;border-radius:6px;margin-bottom:16px;\">\n<h3 style=\"color:#3b82f6;margin:0 0 12px 0;\">🔄 How It Works</h3>\n<pre style=\"background:#1e1e1e;padding:12px;border-radius:4px;overflow-x:auto;line-height:1.6;margin:0;\">\n<span style=\"color:#7f848e;\">// router.ts - kontask creation endpoint</span>\n<span style=\"color:#c678dd;\">if</span> (username && body.context) {\n <span style=\"color:#c678dd;\">const</span> activeRequestId = consoleWebSocket\n .<span style=\"color:#61afef;\">getActiveRequestIdForUser</span>(username);\n <span style=\"color:#c678dd;\">if</span> (activeRequestId && !body.context.requestId) {\n body.context.requestId = activeRequestId;\n <span style=\"color:#7f848e;\">// Log for debugging</span>\n }\n}\n</pre>\n</div>\n\n<div style=\"background:#1a3a1f;padding:16px;border-radius:6px;border:1px solid #22c55e;\">\n<h4 style=\"color:#22c55e;margin:0 0 8px 0;\">✓ Status: Deployed</h4>\n<p style=\"margin:0;color:#9ca3af;\">Fix is live. Konui service restarted. This kontask itself tests the fix - if you're seeing this card, it worked!</p>\n</div>\n</div>",
"choices": [
{
"label": "Commit changes",
"value": "Commit the kontask rendering fix to git with a descriptive message",
"primary": true
},
{
"label": "View logs",
"value": "Show me the konui logs to verify the auto-inject is working"
},
{
"label": "Test another kontask",
"value": "Create a test kontask to verify the fix works consistently"
}
]
},
"createdBy": "claude",
"createdAt": "2026-01-08T12:59:59.515Z",
"updatedAt": "2026-01-08T12:59:59.897Z",
"scope": "vibetools",
"tags": [
"kontasks",
"console",
"bug-fix"
],
"targetUser": "claude"
}