Checks api and automatic retry

I really like the vercel+checkly integration. It works really well & is my main test framework.

The one pain point for me has been that there’s no way to have it automatically retry.

e2e tests are flakey and needs retries, and the checkly+vercel integration seemingly has thought of everything but this.

Right now I am writing a production endpoint that literally takes a vercel webhook, hits vercel checks api to ask whether checks have completed, and then retries any failures via vercel checks api. But this seems pretty silly.

Is there any way we could have this built into the checks api or vercel deployment in general somehow?

Hi, Zach! Welcome to the Vercel Community :waving_hand:

I’ll pass this feedback internally. Thanks for taking the time to share it!

Sharing this for others to also take a look, might be helpful! We did a Checkly session last month. :slight_smile:

Hello @pawlean! Thank you so much for sharing the feedback internally. Has there been any discussion in potentially adding this to the integration? It would save our team the headache or manually rerunning tests that fail due to a slow test link.

Hey, Bill! Welcome to the Vercel Community :smiley:

I know that the Checkly team have been made aware of this. I’ll share this again to get any more feedback.

Thanks for the ping!

Another workaround here would be a failed check webhook from vercel. It would then be easier to write a handler to hit the checks api and ask for a retry. None listed at Webhooks API Reference … could this be in-scope for vercel and allow workarounds for me shortterm and also be a primitive that allows checkly to build a more robust feature here later?

Note: It seems there used to be deployment-checks-completed which does not indicate that they have all passed, only that they are no longer running and had a payload.checks … this would’ve served my purpose well! However: This event has been removed. deployment.succeeded can be used for the same purpose. but deployment.succeeded but that gets fired after all blocking Checks have passed. which is not what I want because I want an event after blocking checks failed, and also none of the other events have check payloads. So another alternative – could we bring this back? Or does deployment.error fire after check failure?