Troubleshooting: LINE inbound events never arrive
A LINE user messages your Official Account and nothing happens on your side: no conversation in the Inbox, nomessage.received webhook delivery. Unlike
WhatsApp or RCS, LINE inbound has a single hard gate you control entirely on
LINE’s side — the Webhook URL in the LINE Developers Console. Until that
URL is set and Use webhook is enabled, LINE holds every event at its side
and Orbit receives nothing, no matter how healthy your credentials are.
This page is the LINE-scoped sibling of
Troubleshooting: inbound WhatsApp or RCS message never arrives;
the wider APAC inbound routing matrix is on
Troubleshooting: LINE, Kakao, WeChat, and Zalo inbound never arrives.
How LINE inbound is wired
Inbound LINE traffic gates on the LINE Developers Console configuration first, then on Orbit’s per-tenant resolution:- In the
LINE Developers Console, open your
Messaging API channel and set the Webhook URL to
https://api.orbit.devotel.io/api/v1/webhooks/inbound/line, then flip Use webhook on. - LINE posts each event to that URL with the channel’s channel id as
destinationand anx-line-signatureHMAC header. - Orbit resolves the owning organization from that channel id, verifies the
signature against the channel secret you connected under
Settings → Channels → LINE, and normalizes
message-type events onto the standard inbound envelope (channel: "line").
Cause table — where inbound dies
Work rows from the top; each row narrows the cause class.The full check sequence
- Inspect the endpoint’s deliveries. List endpoints with
GET /api/v1/webhooks, then read recent deliveries withGET /api/v1/webhooks/{endpoint_id}/deliveries— you wantmessage.receivedwithchannel: "line". An empty list means the event never left LINE (steps 2–4); a failed row means your receiver rejected it (subscription or receiver-side issue). Tooling: Inspecting deliveries. - Verify the LINE Developers Console webhook wiring. Open the Messaging
API channel → Messaging API tab and confirm the Webhook URL is
exactly
https://api.orbit.devotel.io/api/v1/webhooks/inbound/lineand Use webhook is on. Any other URL (or the toggle off) means LINE delivers nowhere Orbit can see. - Confirm the channel id is connected on the right organization. Compare the channel’s Basic settings → Channel ID value against the connected LINE credentials under Settings → Channels → LINE on the organization that expects the traffic.
- Refresh the channel secret if you rotated it. The channel access token and channel secret are separate credentials — a token rotation does not touch the secret, but a secret rotation breaks inbound signature verification until you re-paste it.
Worked example — a first inbound that never fires
You connected LINE yesterday and asked a teammate to message the Official Account. Nothing in the Inbox, nothing inGET /api/v1/webhooks/{id}/deliveries.
The fix sequence:
- Delivery list empty → open the LINE Developers Console and set the Webhook URL + Use webhook. Inbound starts flowing immediately — no reconnect needed.
- Delivery row failed → your receiver rejected or timed out; fix the handler and replay the delivery.
What not to try
- Do not reconnect Orbit credentials when the console URL is unset. Pasting a fresh channel access token does nothing for inbound — the events never leave LINE.
- Do not re-ask the sender to message you. If the console URL was wrong, the event is already lost; have them send again after the wiring is right.
- Do not register your own webhook endpoint in the LINE Developers
Console. The single shared URL
…/webhooks/inbound/lineis how Orbit resolves tenant routing — a direct URL bypasses the inbound pipeline. - Do not expect postbacks (button taps) on
message.received. Onlymessage-type events forward through; route button logic through Orbit flows instead.
When to escalate
Open a support ticket when the console URL is set correctly from the start and deliveries still never attempt, or when inbound drops for a channel secret you have confirmed unchanged. Include:- The LINE channel id (Numerals under Basic settings → Channel ID).
- The sender + recipient pair and timestamp of the missed event (with timezone).
- A screenshot of the Messaging API → Webhook URL configuration panel.
- The webhook endpoint id if you were expecting
message.receiveddeliveries.
See also
- LINE channel page — onboarding steps, inbound routing,
signature verification, and the
LINE_INVALID_TOKENconnect-time code - LINE, Kakao, WeChat, Zalo inbound no-route — the four-channel inbound matrix
- Inbound WhatsApp or RCS no route — the sibling runbook this page extends
- Normalized inbound envelope — the canonical inbound payload shape