BUG: Mesh accepts intents for which no workers exist - fails silently with cryptic error #118
Labels
No labels
blocked:children
blocked:commit-ready-failed
blocked:depends-231
blocked:depends-236
blocked:depends-237
blocked:depends-238
blocked:depends-239
blocked:gate-fetch
blocked:gate-fetch
blocked:gate-lint
blocked:gate-research
blocked:needs-attention
blocked:needs-decision
blocked:no-changes
blocked:no-procedure
blocked:preflight
blocked:verify-failed
bug
enhancement
feature-request
high-priority
in-progress
lint-cleanup
needs-decompose
needs-triage
ops-retry
ops-task
phase-5
quickfix
security/medium
self-building
triage-approved
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Mark/mesh-seed#118
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Bug Description
The mesh accepts intent submissions via HTTP API even when no workers are registered to handle that intent type. The intent enters the system, goes through the full routing/bidding process, and only fails at execution time with an unhelpful error message.
Expected Behavior
Option A (Fail Fast): Gateway should reject intent submission with HTTP 400/422 if no workers exist for the intent type.
Option B (Clear Error): If accepted, the error should clearly state "No workers registered for capability 'write_article'" rather than the cryptic "No valid capabilities for worker".
Actual Behavior
/intent{"error": "No valid capabilities for worker", "status": "failed"}Reproduction Steps
Logs
From test run (2026-04-10):
Root Cause Analysis
The mesh has multiple layers that should catch this:
api_gateway.py) - Validates intent format but doesn't check if any workers can handle it_bid_on_intent) - Tries to bid but finds no eligible workersThe error message "No valid capabilities for worker" comes from the capability loader or worker execution layer, but by then the intent has already been accepted and resources wasted.
Impact
Possible Solutions
Solution 1: Gateway Validation (Recommended)
Add validation in
api_gateway.pysubmit_intent():Solution 2: mesh_node Early Rejection
In
mesh_node._bid_on_intent():intent.rejectedimmediately with clear reasonSolution 3: Better Error Messages
At minimum, change error from:
"No valid capabilities for worker""No workers registered for capability 'write_article'. Available: [list]"Related Issues
Environment
tests/e2e/docker_trump_essay/Severity
Medium-High - Breaks basic functionality, wastes resources, poor UX
🤖 [
quickfix-mesh-seed-118] still working — overseer retry🤖 [
quickfix-mesh-seed-118] still working — overseer retry🤖 [
quickfix-mesh-seed-118] still working — overseer retry🤖 [
quickfix-mesh-seed-118] still working — overseer retry🤖 [
quickfix-mesh-seed-118] still working — overseer retry🤖 [
quickfix-mesh-seed-118] still working — overseer retry🤖 [
quickfix-mesh-seed-118] still working — overseer retry🤖 [
quickfix-mesh-seed-118] still working — overseer retry🤖 [
quickfix-mesh-seed-118] still working — overseer retry🤖 [
quickfix-mesh-seed-118] still working — overseer retry🤖 [
quickfix-mesh-seed-118] still working — overseer retry🤖 [
quickfix-mesh-seed-118] still working — overseer retry🤖 [
quickfix-mesh-seed-118] still working — overseer retry🤖 [
quickfix-mesh-seed-118] still working — overseer retry🤖 [
quickfix-mesh-seed-118] still working — overseer retry🤖 [
quickfix-mesh-seed-118] still working — overseer retry🤖 [
quickfix-mesh-seed-118] still working — overseer retry🤖 [
quickfix-mesh-seed-118] still working — overseer retry🤖 [
quickfix-mesh-seed-118] still working — overseer retry🤖 [
quickfix-mesh-seed-118] still working — overseer retry🤖 [
quickfix-mesh-seed-118] still working — overseer retry