Repository navigation
Shell doesn't work with the plugin "retryFailedStep" #4844
Copy link
Copy link
Closed
Description
Activity
I'm able to fix the issue
TypeError: Cannot read properties of undefined (reading 'disableRetryFailedStep')by a help of CoPilot:lib/plugin/retryFailedStep.js:event.dispatcher.on(event.test.before, test => { // pass disableRetryFailedStep is a preferred way to disable retr // test.disableRetryFailedStep is used for backward compatibility if (test.opts && test.opts.disableRetryFailedStep || test.disableRetryFailedStep) { store.autoRetries = false return // disable retry when a test is not active } if (!test.opts) { test.opts = {} } ... }
but it's still failing on the
TypeError: Chaining cycle detected for promiseerror if I call some method or if I just pressENTER$ codeceptjs shell Deprecation Warning: 'tryTo' has been moved to the 'codeceptjs/effects' module. Disable tryTo plugin to remove this warning. Deprecation Warning: 'retryTo' has been moved to the 'codeceptjs/effects' module. Disable retryTo plugin to remove this warning. Starting interactive shell for current suite... Interactive shell started Use JavaScript syntax to try steps in action - Press ENTER to run the next step - Press TAB twice to see all available commands - Type exit + Enter to exit the interactive shell - Prefix => to run js commands I.see("Domain") node:internal/process/task_queues:95 runMicrotasks(); ^ TypeError: Chaining cycle detected for promise #<Promise> at process.processTicksAndRejections (node:internal/process/task_queues:95:5) Node.js v20.19.0but it's still failing on the TypeError: Chaining cycle detected for promise error if I call some method or if I just press ENTER
This can be "fixed" by ignoring of
unhandledRejectioninlib/command/interactive.js// Add global handler for unhandled promise rejections process.on('unhandledRejection', (reason, promise) => { // Intentionally ignore unhandled rejections in interactive shell })
Then the
shellworks well$ codeceptjs shell Deprecation Warning: 'tryTo' has been moved to the 'codeceptjs/effects' module. Disable tryTo plugin to remove this warning. Deprecation Warning: 'retryTo' has been moved to the 'codeceptjs/effects' module. Disable retryTo plugin to remove this warning. Starting interactive shell for current suite... Interactive shell started Use JavaScript syntax to try steps in action - Press ENTER to run the next step - Press TAB twice to see all available commands - Type exit + Enter to exit the interactive shell - Prefix => to run js commands I.amOnPage("https://codecept.io") I.see('CodeceptJS'); OK I.see('CodeceptJS'); I.see('CodeceptJSx'); ERROR OK I.see('CodeceptJSx'); FAIL expected web application to include "CodeceptJSx" I.exit Exiting interactive shell....
of course still there is an internal issue that causes the exception and it should be fixed. But can't see through it.
- changed the title
[-]Shell: Command fails: "Cannot read properties of undefined (reading 'goto')"[/-][+]Shell: Command fails: TypeError: Chaining cycle detected for promise[/+]on May 26, 2025 - changed the title
[-]Shell: Command fails: TypeError: Chaining cycle detected for promise[/-][+]Shell doesn't work with the plugin "retryFailedStep"[/+]on Oct 25, 2025 - added a commit that references this issue
on Oct 25, 2025 - added a commit that references this issue
on Oct 29, 2025
Metadata
Metadata
Assignees
Labels
No labels
It's a regression in 3.7.0. It works well in 3.6.10.
Steps:
BTW the message
TypeError: Cannot read properties of undefined (reading 'disableRetryFailedStep')is strange. Not sure if it affects the next behavior (but maybe it's a different issue). Could you look at it?amOnPage("https://codecept.io/")Expected result:
Actual result:
Also I would expect that a Chromium in windowed mode should be started in the shell mode, but it doesn't happen 🐛 .
codecept.conf.ts:
Used SW: