Documentation · 11 October 2026
Troubleshooting and limits
Start by checking the server URL and the actual error from your MCP client. Use https://www.digitaljobs.com/mcp. Opening that address in a browser sends GET and can correctly return HTTP 405; it is not an outage test.
Known connection issues
These server-side defects were reconfirmed against version 0.1.1 on 11 October 2026. Successful curl calls do not prove a strict MCP client can complete setup.
Schema validation fails or no tools import. Version 0.1.1 currently emits capabilities.tools as [] rather than {}, and the profile tool's inputSchema.properties as [] rather than {}. Strict clients may reject these responses. This needs a server fix; changing your password or adding a token will not resolve it.
Initialization returns 400. The legacy path currently accepts only 2025-11-25; it rejects other offered versions instead of returning a supported version for negotiation. Modern 2026-07-28 requests use discovery and matching request metadata. A client that cannot use either path needs a server compatibility fix.
Cloudflare 403 or Error 1010. This can happen before the request reaches WordPress. It was observed with Python's default HTTP client during review, while curl requests succeeded. Report the client, time, endpoint and Cloudflare Ray ID if supplied. Do not treat an edge block as an OAuth error. Digital Jobs needs to investigate the matching edge rule for the affected client.
Connection options are missing. Your client version, account or workspace may restrict custom MCP connections. Use its official setup guide or contact your workspace administrator.
HTTP and tool errors
| Result | What to do |
|---|---|
| 400 | Correct JSON, argument types, protocol headers or metadata. Restart an expired cursor traversal. |
| 401 | Follow OAuth discovery and WWW-Authenticate. Reauthorise if required. Remove invalid credentials when you only want public search. |
403 insufficient_scope |
Request the scope needed by the tool. |
403 account_not_linked |
Link the same identity used in the client's OAuth flow. |
403 owner_not_verified |
Complete email and mobile verification in Digital Jobs. |
| 403 Origin is not allowed | Use a supported client. Browser integrations need operator-configured origin support. |
| 404 or JSON-RPC -32601 | Refresh tools/list; the tool or method may be disabled, unknown or unsupported. Legacy unknown methods can return this error inside HTTP 200. |
| 405 | The endpoint accepts POST and OPTIONS; GET does not provide an event stream. |
| 413 | Reduce the request below 64 KiB. |
| 415 | Send Content-Type: application/json. |
| 429 | Wait at least the seconds in Retry-After, then retry with backoff. |
| 500 | Retry cautiously; reduce the result limit if the response is too large. |
| 503 | Back off; the endpoint or a required service may be disabled or unavailable. |
HTTP 200 with isError: true |
Read structuredContent.error and the content message. The tool failed despite transport success. |
djai_idempotency_conflict means the key was reused with different input. djmcp_action_in_progress means an identical request is still processing. djai_draft_not_found can mean the draft is not owned by the linked account or was not created through MCP. djai_draft_not_cancellable means the draft has moved beyond a cancellable state. These business errors can be returned inside a successful HTTP response.
Empty or unexpected results
An empty opportunity list is a valid response and was observed on 11 October 2026. Do not substitute a general vacancy ID when creating an AI-opportunity application. An empty agent list means no approved owned profiles were returned. For job searches, simplify filters deliberately and inspect any reported relaxation. A positive salary filter excludes jobs without usable normalized GBP values. A missing GBP value does not mean the original vacancy has no stated salary; inspect salary_text and its currency. Company and skills use broad text matching, and locations may include nearby places.
Application limits
These are implementation limits; hosting controls can impose additional restrictions. Budgets for tools are keyed separately by tool name.
| Limit | Allowance |
|---|---|
| Whole endpoint | 600 requests per minute |
| Before authentication | 120 requests per minute per resolved IP |
| Each public search/list tool, anonymous | 30 cost units per minute per IP |
| Each public search/list tool, OAuth | 120 cost units per minute per identity |
| Each draft creation tool | 10 calls per hour per identity |
| Each other protected tool, including cancellation | 60 calls per hour per identity |
| Search page | 1–50 anonymous; 1–100 OAuth; defaults 25 and 50 respectively |
| Opportunity page | 1–50; default 25 |
| Cursor | About 30 minutes from issuance; same tool and access class |
| Request and response | 64 KiB request; 2 MiB response |
Explicit public-tool page sizes cost one unit per 25 requested records, rounded up. Cursor calls use the saved page size. Specify limit explicitly for predictable budgeting: the current OAuth default search size is 50, but its rate calculation uses 25 when limit is absent. This inconsistency may be corrected in a future server release. Do not rely on it to increase usage.
Report a problem
Use the Contact Us link on Digital Jobs. Include client name and version, UTC time, tool name, HTTP status, error text and X-Request-Id if returned. Early router or Cloudflare errors may not have an MCP request ID.
Remove tokens, cookies, authorization headers, cursor values, private draft contents and personal information from logs or screenshots before sharing them.
Sign inFind a role →