Cron check-ins incorrectly marked as timed-out despite successful SDK sends
- Dominant language
- Python
- Stars
- 44.8k
- Forks
- 4.9k
- Avg merge
- 21h 10m
- Merged PRs (30d)
- 635
Description
### Environment
SaaS (https://sentry.io/)
### Steps to Reproduce
1. Configure a cron monitor in AWS Lambda using `@sentry/aws-serverless`:
```js
const monitorConfig = {
schedule: { type: "crontab", value: "0 3 * * *" },
checkinMargin: 1,
maxRuntime: 5,
timezone: "Etc/UTC",
};
export const handler = async (event) => {
await Sentry.withMonitor("cleanup", async () => {
// job logic (~30s runtime)
}, monitorConfig);
await Sentry.flush();
};
```
2. Run the Lambda (manually or scheduled)
3. SDK debug logs confirm both check-ins sent successfully:
```
Sending checkin: cleanup in_progress
Sending checkin: cleanup ok
```
### Expected Result
Check-in shows as successful/OK in the Sentry UI.
### Actual Result
Check-in marked as timed-out with tooltip: "This check-in was incorrectly marked as timed-out. The check-in was processed late due to abnormal system latency in Sentry."
Link to the monitor in the internal Linear ticket.
### Product Area
Crons
### Link
_No response_
### DSN
_No response_
### Version
_No response_
Contributor guide
Research direction
Start by reproducing the AWS Lambda cron monitor flow using @sentry/aws-serverless, Sentry.withMonitor, the shown monitorConfig, and Sentry.flush. Compare the SDK's in_progress and ok sends with the resulting Sentry check-in state and investigate the Crons processing path. Done means a successful SDK send is shown as successful/OK rather than timed-out.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- aws, javascript
- Domain
- cloud, observability
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100