Skip to content

fix(webapp): log transient Attio 5xx/429 at warn instead of error#4270

Merged
isshaddad merged 2 commits into
mainfrom
fix/attio-assert-transient-log-level
Jul 15, 2026
Merged

fix(webapp): log transient Attio 5xx/429 at warn instead of error#4270
isshaddad merged 2 commits into
mainfrom
fix/attio-assert-transient-log-level

Conversation

@isshaddad

Copy link
Copy Markdown
Collaborator

The signup → Attio sync (attio.server.ts #assert) logged every non-2xx response at error level and threw the same way regardless of status. Transient upstream failures (5xx/429) are retried by the common worker and self-heal, so treating them as errors created false alerts for something that isn't actually a bug.

Now #assert splits the two cases:

  • 5xx / 429 — Logged at warn and thrown with logLevel: "warn", so they continue to be retried but don't raise error-level alerts. This reuses the same pattern the worker already honors (directorySyncEffects).
  • 4xx — Unchanged: logged at error and thrown, so genuine integration bugs (schema, permissions, auth, etc.) remain visible.

There is no behavior change to retries or the signup flow. This is a server-only change.

@changeset-bot

changeset-bot Bot commented Jul 15, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: a362d79

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@coderabbitai

coderabbitai Bot commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 62b4aa18-0f18-4fe1-880a-bca13b939fc0

📥 Commits

Reviewing files that changed from the base of the PR and between b8e881f and a362d79.

📒 Files selected for processing (1)
  • .server-changes/attio-sync-transient-retry.md
🚧 Files skipped from review as they are similar to previous changes (1)
  • .server-changes/attio-sync-transient-retry.md
📜 Recent review details
⏰ Context from checks skipped due to timeout. (4)
  • GitHub Check: code-quality / code-quality
  • GitHub Check: audit
  • GitHub Check: audit
  • GitHub Check: Analyze (javascript-typescript)

Walkthrough

Updated Attio response handling to classify HTTP 5xx and 429 responses as transient, log them as warnings, and tag thrown errors with logLevel: "warn". Other non-OK responses continue to log as errors and throw untagged errors. Updated the server-change note to document quiet retries for transient sync failures.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Description check ⚠️ Warning The description explains the change, but it omits required template items like Closes #issue, checklist checkboxes, Testing steps, Changelog, and Screenshots. Add the missing template sections, including the issue reference, checklist items, testing details, changelog entry, and screenshots section.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly names the main change: logging transient Attio 5xx/429 responses at warn instead of error.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/attio-assert-transient-log-level

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@isshaddad
isshaddad marked this pull request as ready for review July 15, 2026 14:37
devin-ai-integration[bot]

This comment was marked as resolved.

Co-authored-by: devin-ai-integration[bot] <158243242+devin-ai-integration[bot]@users.noreply.github.com>
@isshaddad
isshaddad merged commit 80cbc46 into main Jul 15, 2026
31 checks passed
@isshaddad
isshaddad deleted the fix/attio-assert-transient-log-level branch July 15, 2026 14:57
@github-actions github-actions Bot mentioned this pull request Jul 15, 2026
carderne pushed a commit that referenced this pull request Jul 20, 2026
## Summary
5 improvements, 5 bug fixes.

## Improvements
- Add experimental Node.js 24 and 26 task runtimes. Set `runtime` to
`experimental-node-24` or `experimental-node-26` in `trigger.config.ts`.
([#4085](#4085))
- Add `defaultRegion` to the project GET and list API responses; null
when unset.
([#4146](#4146))

## Server changes

These changes affect the self-hosted Docker image and Trigger.dev Cloud:

- Transient internal sync failures are now retried quietly instead of
surfacing as errors.
([#4270](#4270))
- Optionally route ClickHouse read traffic to a read replica while
writes stay on the primary. Set `CLICKHOUSE_READER_URL` to move all
reads, or target the busiest paths with `RUNS_LIST_CLICKHOUSE_URL` (runs
list) and `EVENTS_READER_CLICKHOUSE_URL` (traces, spans, logs). All
optional; unset keeps current behavior.
([#4081](#4081))
- Remove the deprecated realtime stream write endpoint used by retired
v3 task clients.
([#4250](#4250))
- Fix batchTrigger requests that set a per-item idempotency key failing
with an error instead of creating and deduplicating the runs
([#4271](#4271))
- Speed up idempotency checks on `batchTrigger` calls that use
idempotency keys. Large batches against a task with a big run history no
longer degrade to multi-second lookups.
([#4255](#4255))
- The "Preview branches" usage on the Limits page now counts only
preview branches.
([#4283](#4283))
- Avoid opening a redundant database connection pool when the legacy and
primary databases are the same server, preventing connection usage from
doubling.
([#4253](#4253))
- Fix pages occasionally loading unstyled or failing to load during a
deploy. The dashboard now reloads automatically to recover.
([#4282](#4282))

<details>
<summary>Raw changeset output</summary>

# Releases
## @trigger.dev/build@4.5.5

### Patch Changes

- Updated dependencies:
  - `@trigger.dev/core@4.5.5`
## trigger.dev@4.5.5

### Patch Changes

- Add experimental Node.js 24 and 26 task runtimes. Set `runtime` to
`experimental-node-24` or `experimental-node-26` in `trigger.config.ts`.
([#4085](#4085))
- Updated dependencies:
  - `@trigger.dev/core@4.5.5`
  - `@trigger.dev/build@4.5.5`
  - `@trigger.dev/schema-to-json@4.5.5`
## @trigger.dev/core@4.5.5

### Patch Changes

- Add experimental Node.js 24 and 26 task runtimes. Set `runtime` to
`experimental-node-24` or `experimental-node-26` in `trigger.config.ts`.
([#4085](#4085))
- Add `defaultRegion` to the project GET and list API responses; null
when unset.
([#4146](#4146))
## @trigger.dev/python@4.5.5

### Patch Changes

- Updated dependencies:
  - `@trigger.dev/core@4.5.5`
  - `@trigger.dev/build@4.5.5`
  - `@trigger.dev/sdk@4.5.5`
## @trigger.dev/react-hooks@4.5.5

### Patch Changes

- Updated dependencies:
  - `@trigger.dev/core@4.5.5`
## @trigger.dev/redis-worker@4.5.5

### Patch Changes

- Updated dependencies:
  - `@trigger.dev/core@4.5.5`
## @trigger.dev/rsc@4.5.5

### Patch Changes

- Updated dependencies:
  - `@trigger.dev/core@4.5.5`
## @trigger.dev/schema-to-json@4.5.5

### Patch Changes

- Updated dependencies:
  - `@trigger.dev/core@4.5.5`
## @trigger.dev/sdk@4.5.5

### Patch Changes

- Updated dependencies:
  - `@trigger.dev/core@4.5.5`

</details>

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants