LINE Messaging API · error code

LINE error 404: richmenu not found

Permanent - do not retryHTTP 404Rich menu errors

Last verified against LINE Developers - Messaging API reference (error responses)

What LINE returns
richmenu not found

What error 404 means

The rich menu ID in your request doesn't refer to a rich menu on this channel. The bulk link endpoint (POST /v2/bot/richmenu/bulk/link) documents this as "A non-existent rich menu is specified" with the body {"message":"richmenu not found","details":[]}. Most other rich menu endpoints list the same 404 condition.

Watch for two look-alikes. First, the rich menu alias endpoints return the same string with a 400 when you create an alias for a rich menu that doesn't exist or that has no image yet - the reference groups those together - so an alias 400 "richmenu not found" may just mean the upload hasn't happened. Second, the single-user link endpoint documents its 404 with a capitalized Not found body rather than this string.

In practice the ID is usually stale. Rich menus are replaced rather than edited, so any code or database that stores an old richMenuId will eventually point at a deleted menu. Malformed IDs fail differently: invalid richMenuId as a 400 validation detail.

What it looks like

// If you specify a non-existent rich menu (404 Not Found)
{
    "message": "richmenu not found",
    "details": []
}

Why it happens

  • The rich menu was deleted (often during a redesign) but its ID is still stored in config or a database.
  • The ID belongs to a rich menu in another channel, such as staging.
  • For alias creation: the rich menu exists but has no image yet.
  • A typo or truncation in the richMenuId.

How to fix LINE error 404

  1. 1List current menus with GET /v2/bot/richmenu/list and compare IDs with what your code is using.
  2. 2Replace stale IDs with the current menu's ID, or recreate the menu if it was deleted by mistake.
  3. 3For alias errors, upload the image first, then create or update the alias.
  4. 4Make sure the token and the rich menu belong to the same channel.

How to stop it recurring

Don't hard-code rich menu IDs. Reference menus through aliases in switch actions and keep the alias-to-ID mapping in one place your deploy updates. Delete an old menu only after the default, all per-user links, and aliases have moved to its replacement. Rich menu counts and alias limits are listed under rich menu limits.

Official reference: LINE Developers - Messaging API reference (error responses). See all LINE error codes or the LINE limits and quotas.

Related codes

Error 404 - quick answers

What does LINE error 404 mean?

The rich menu ID in your request doesn't refer to a rich menu on this channel. The bulk link endpoint ( POST /v2/bot/richmenu/bulk/link ) documents this as "A non-existent rich menu is specified" with the body {"message":"richmenu not found","details":[]} . Most other rich menu endpoints list the same 404 condition. Watch for two look-alikes.

How do I fix LINE error 404?

1. List current menus with GET /v2/bot/richmenu/list and compare IDs with what your code is using. 2. Replace stale IDs with the current menu's ID, or recreate the menu if it was deleted by mistake. 3. For alias errors, upload the image first, then create or update the alias. 4. Make sure the token and the rich menu belong to the same channel.

Should I retry after error 404?

No. Retrying the same request produces the same error; the condition has to be fixed first. Treat it as a permanent failure for that message and surface it, rather than looping.

Stop debugging LINE by hand

Connect the channel through Conferbot: tokens, webhooks and retries are handled, failures show as readable status.