Skip to content

feat: untracked errors#191

Merged
Justin Pye (bernielomax) merged 2 commits intomainfrom
bernielomax/feat/untracked-errors
Jan 23, 2026
Merged

feat: untracked errors#191
Justin Pye (bernielomax) merged 2 commits intomainfrom
bernielomax/feat/untracked-errors

Conversation

@bernielomax
Copy link
Contributor

@bernielomax Justin Pye (bernielomax) commented Jan 14, 2026

Summary

  • Introduces UntrackedError type for errors outside abctl's control (permissions, docker not running, port in use, etc.)
  • These errors display to users but don't get sent to Sentry
  • Distinct from abctl.Error which is for help messages

Motivation

Addresses Sentry issues ABCTL-A and ABCTL-37 which account for over 20,000 events from user environment issues that are not actionable bugs.

Changes

  • Added UntrackedError type with proper error wrapping
  • Updated handleErr to skip Sentry for UntrackedError
  • Wrapped user environment errors: ErrDocker, ErrPort, 1ErrAirbyteDir, ErrIpAddressForHostFlag, ErrInvalidHostFlag, PG_VERSION read errors

Note

Existing users won't benefit until they upgrade. Consider adding Sentry inbound filters for immediate relief:

  • *permission denied*PG_VERSION*
  • *no such file or directory*values.yaml*

… Sentry

Introduce UntrackedError for errors caused by the user's environment
(permissions, disk space, docker not running, etc.) that should be
displayed to the user but not sent to error tracking since they are
outside abctl's control.

This is distinct from abctl.Error which provides user-friendly help
messages for specific errors. UntrackedError is specifically about
whether an error should be reported to Sentry, not about displaying
help text.

Addresses Sentry issues ABCTL-A and ABCTL-37 which account for over
20,000 events combined from user environment issues (missing files,
permission denied errors) that are not actionable bugs.
Wrap the following errors to exclude them from Sentry:
- ErrDocker: docker not running or inaccessible
- ErrPort: port already in use
- ErrAirbyteDir: airbyte directory inaccessible
- ErrIpAddressForHostFlag: invalid host flag (IP address)
- ErrInvalidHostFlag: invalid host flag format
- cannot read PG_VERSION file (excluding not found)
@bernielomax Justin Pye (bernielomax) changed the title feat: Untracked errors feat: untracked errors Jan 14, 2026
Copy link

@tryangul Ryan Br... (tryangul) left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it worth cranking out a few tests for this behavior?

@bernielomax
Copy link
Contributor Author

Justin Pye (bernielomax) commented Jan 14, 2026

The error handler is not written in a way that is easy to test. I started to add some around the new type, but in the end, I was just testing Go's standard lib.

Copy link
Contributor

@aaronsteers Aaron ("AJ") Steers (aaronsteers) left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ I'll stop short of official approval, since I don't know this codebase. But it looks good for my part. Thanks, Justin Pye (@bernielomax) !

@bernielomax Justin Pye (bernielomax) merged commit 31ba28c into main Jan 23, 2026
3 of 6 checks passed
@bernielomax Justin Pye (bernielomax) deleted the bernielomax/feat/untracked-errors branch January 23, 2026 21:51
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.

4 participants