Do not guess from a short message. Check authentication, JSON, image, resource state, and rate limits in that order.
Common error map
The HTTP status identifies a category, while the response body and endpoint identify the real cause. Record request IDs and error messages without logging tokens.
| Status | What to inspect | Permanent fix |
|---|---|---|
| 400 | Invalid JSON, missing image, or limit violation | Validate the object and verify sequence |
| 401 | Missing, expired, or wrong-channel token | Issue or rotate the token and send Bearer auth |
| 403 | Resource managed by another channel or tool | Confirm the channel and menu owner |
| 404 | Missing richMenuId or image | Use the latest ID returned by create or list |
| 413 | Studio or proxy payload limit exceeded | Reduce image or payload size before sending |
| 415 | Image Content-Type is not JPEG/PNG | Send a MIME type matching the actual file |
| 429 | Endpoint rate limit exceeded | Use backoff, queues, and bounded retries |
The fastest diagnostic order
If each stage passes independently but the full flow fails, verify that every request uses the same richMenuId and that concurrent jobs are not creating or deleting the same resource.
- Call an account or list endpoint to prove the token
- Validate the object before creating it
- Inspect the image with the size checker
- Create and capture richMenuId from the response
- Upload to api-data.line.me with the correct Content-Type
- Set default only after upload succeeds
Unsafe troubleshooting shortcuts
Record the endpoint, status, redacted response body, time, and last successful stage. This creates reproducible evidence and supports a regression test.
- Do not paste tokens into issues, screenshots, or logs
- Do not retry without bounds after a 429
- Do not delete the old menu hoping a 400 disappears
- Do not change multiple variables at once and lose causal evidence
Official references
Confirm the latest official specification before using a workflow in a critical system.
Ready to map it on a canvas?
Drag, move, and resize action areas, then validate the JSON before publishing.
Open Studio →