forcedotcom / forcedotcom/mcp-hosted
[Bug]: SOR recipe step targets connect/genai-mcp/active-1p-server, which 404s on a production org
- Dominant language
- No language data
- Stars
- 135
- Forks
- 20
- PR merge metrics
- No merged PRs in 30d
Description
### Summary
A Setup Operation Recipe returned by `discover` and `describe` instructs the caller to GET `connect/genai-mcp/active-1p-server`, which 404s on a production org.
### Environment
Production org (Enterprise Edition), API v67. Client: Claude Code via a pre-registered External Client App (public client, PKCE, `mcp_api` scope). Server reports `headless-360 1.0.0`. Observed 2026-08-22.
### Detail
`GET /services/data/v67.0/connect/genai-mcp/active-1p-server` through `dispatch_readonly` returns 404. Path-only, no query string, so this is not the embedded-query-string problem reported in #48. Other path-only GETs in the same probe run succeeded, including `limits`, `sobjects`, object describes and `platform-mcp-context/user-info`, so the transport was working.
The recipe that names this endpoint is surfaced by `discover` and its step detail is returned by `describe`, whose own description tells the agent to copy the step's `api` value into `dispatch` unchanged.
### Why this matters
An agent following the recipe as instructed hits a bare 404 with nothing to say whether the endpoint is unavailable in this org, gated behind a licence or feature, removed in this API version, or simply wrong. Recipes are the primary product of `discover`, so a recipe that cannot be executed on a standard Enterprise Edition org is worse than no recipe: the agent has no way to distinguish "not available to you" from "you called it wrong", and will typically retry variants.
### Suggested resolution
Either gate recipes by the features and licences actually present in the org, or return an error that distinguishes "endpoint not provisioned here" from "route not found".
Contributor guide
Research direction
Start with the discover and describe entry points that produce the Setup Operation Recipe, then trace how its api value is passed unchanged to dispatch. Reproduce the path-only GET for connect/genai-mcp/active-1p-server and compare it with the other successful probe paths. Done means the recipe is gated by available features or the response distinguishes an unprovisioned endpoint from a missing route.
Written by the indexing model from the issue text.
Assessment
- Domain
- api, backend-api-design
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100