Skip to content

Simplified Airtable validation warning logging - #2817

Draft
joshestein wants to merge 27 commits into
masterfrom
josh/2787-better-error-logging
Draft

Simplified Airtable validation warning logging#2817
joshestein wants to merge 27 commits into
masterfrom
josh/2787-better-error-logging

Conversation

@joshestein

@joshestein joshestein commented Jul 22, 2026

Copy link
Copy Markdown
Collaborator

Description

Extracts the core information from airtable-ts's error message and builds more concise error logs, including URLs.

It might be simpler to update airtable-ts itself so that structured props like tableId, fieldId become part of the validation error object, which would lead to less brittle error parsing. I'm leaving that as a follow-up task.

Changes:

  • formatAirtableWarning (@bluedot/db): strips the wrapper prefixes airtable-ts prepends as the error bubbles up plus its trailing Suggestion:
  • slackNotifications: batching no longer parses Airtable ids out of message text. Callers pass batchGroup: { signature, dedupeKeys } instead.
  • Grouping is by table + field rather than per record, so one broken column across 54 records is one alert, not 54.
  • Fixed sticky spike-option semantics: a later slackAlert in the same window that omits spikeThreshold/escalationChannelId no longer clears what an earlier call established.

Issue

Fixes #2787

Before

Airtable validation warning encountered, attempting to proceed by setting the affected fields to undefined. Warning message: Failed to map record from Airtable format for table 'self_serve_course_registration' (tbla338CpAd0FF96g) and record rec1ArmjQ8wUmBwDC: Failed to map field fullName (fldsS2lCVlk1WDSDw) from Airtable: Cannot convert value from airtable type 'multipleLookupValues' to 'string | null', as the Airtable API provided a 'object'. Suggestion: Update the types in your table definition to compatible types for your Airtable base. (Table: tbla338CpAd0FF96g) (Field: fldsS2lCVlk1WDSDw)

⚠️ This error occurred 54 times affecting 54 record(s):
rec1ArmjQ8wUmBwDC, rec1uUahU5KwhytD0, … and 44 more

After

Field fullName on self_serve_course_registration (record rec1ArmjQ8wUmBwDC): can't map Airtable multipleLookupValues → string | null (got object). Value defaulted.

⚠️ This error occurred 54 times affecting 54 item(s):
rec1ArmjQ8wUmBwDC, rec1uUahU5KwhytD0, … and 44 more

@coderabbitai

coderabbitai Bot commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: b9503c12-98d7-45fc-88a4-c9d5688831c5

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch josh/2787-better-error-logging

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.

@Will-Howard
Will-Howard temporarily deployed to josh/2787-better-error-logging - bluedot-preview PR #2817 July 28, 2026 08:27 — with Render Destroyed
@Will-Howard
Will-Howard temporarily deployed to josh/2787-better-error-logging - bluedot-storybook-preview PR #2817 July 28, 2026 08:27 — with Render Destroyed
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.

Make PG sync validation message more concise

2 participants