fix(line): keep startAccount pending until abort signal to prevent restart loop#26528
Merged
steipete merged 2 commits intoopenclaw:mainfrom Feb 26, 2026
Merged
Conversation
steipete
added a commit
to Sid-Qin/openclaw
that referenced
this pull request
Feb 26, 2026
57b3c7c to
71c03f7
Compare
…start loop monitorLineProvider() registers the webhook HTTP route and returns immediately. Because startAccount() directly returned that resolved promise, the channel supervisor interpreted it as "provider exited" and triggered auto-restart up to 10 times. Await a promise gated on ctx.abortSignal so startAccount stays alive for the full provider lifecycle, matching the contract expected by the channel supervisor. Closes openclaw#26478 Co-authored-by: Cursor <cursoragent@cursor.com>
71c03f7 to
1c14f14
Compare
Contributor
2 tasks
execute008
pushed a commit
to execute008/openclaw
that referenced
this pull request
Feb 27, 2026
r4jiv007
pushed a commit
to r4jiv007/openclaw
that referenced
this pull request
Feb 28, 2026
vincentkoc
pushed a commit
to Sid-Qin/openclaw
that referenced
this pull request
Feb 28, 2026
vincentkoc
pushed a commit
to rylena/rylen-openclaw
that referenced
this pull request
Feb 28, 2026
6 tasks
steipete
added a commit
to Sid-Qin/openclaw
that referenced
this pull request
Mar 2, 2026
dorgonman
pushed a commit
to kanohorizonia/openclaw
that referenced
this pull request
Mar 3, 2026
zooqueen
pushed a commit
to hanzoai/bot
that referenced
this pull request
Mar 6, 2026
thebenjaminlee
pushed a commit
to escape-velocity-ventures/openclaw
that referenced
this pull request
Mar 7, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
startAccountresolves immediately aftermonitorLineProviderreturns, causing the channel supervisor to treat the provider as "exited" and triggering an auto-restart loop (up to 10 attempts).extensions/line/src/channel.ts— aftermonitorLineProviderreturns, await a Promise that resolves whenctx.abortSignalfires, keepingstartAccountpending for the full lifecycle.extensions/line/src/channel.startup.test.ts— updated existing test to handle abort lifecycle; added "stays pending until abort signal fires" and "resolves immediately when abortSignal is already aborted" tests.Change Type (select all)
Scope (select all touched areas)
Linked Issue/PR
User-visible / Behavior Changes
Security Impact (required)
NoNoNoNoNoRepro + Verification
Environment
Steps
Expected
Actual
Evidence
Human Verification (required)
Compatibility / Migration
YesNoNoFailure Recovery (if this breaks)
extensions/line/src/channel.tsRisks and Mitigations
None — the abort signal is managed by the channel supervisor and always fires on clean shutdown.
Greptile Summary
Fixed LINE webhook provider restart loop by keeping
startAccountpending until abort signal fires. Previously,startAccountresolved immediately aftermonitorLineProviderreturned, causing the channel supervisor to treat it as exited and trigger up to 10 auto-restart attempts.monitorLineProvidercall from direct return to awaited assignment, then added Promise that waits forctx.abortSignalConfidence Score: 5/5
Last reviewed commit: 57b3c7c