Skip to content

fix(grpc): mask outbound RPC errors - #90

Merged
AlexeyShalaev merged 1 commit into
bedrock-python:masterfrom
mikemikimike:fix/mask-outbound-grpc-error-86
Oct 16, 2026
Merged

AlexeyShalaev merged 1 commit into
bedrock-python:masterfrom
mikemikimike:fix/mask-outbound-grpc-error-86

Conversation

@mikemikimike

Copy link
Copy Markdown
Contributor

Summary

UnhandledErrorInterceptor re-raises grpc.RpcError, so failed downstream RPCs escape masking as UNKNOWN and expose downstream details.

Changes

  • Apply configured masking to outbound grpc.RpcError failures.
  • Preserve x-error-code metadata and traceback logging; keep server-originated AbortError passthrough.
  • Add interceptor unit coverage and a two-service gRPC integration regression; document the behavior.

Compatibility

Outbound failures now return masked INTERNAL / internal_error instead of UNKNOWN with downstream details. Server-originated AbortError behavior is unchanged.

Tests

  • Python 3.12, 3.13, and 3.14: 776 passed, 14 skipped per runtime (92.24% coverage).
  • gRPC integration: 8 passed per runtime.
  • APScheduler 3: 21 passed, 1 skipped.
  • make check, make build, and make docs-build passed.

Fixes #86
#86

@codecov

codecov Bot commented Oct 16, 2026

Copy link
Copy Markdown

Welcome to Codecov 🎉

Once you merge this PR into your default branch, you're all set! Codecov will compare coverage reports and display results in all future pull requests.

ℹ️ You can also turn on project coverage checks and project coverage reporting on Pull Request comment

Thanks for integrating Codecov - We've got you covered ☂️

@AlexeyShalaev AlexeyShalaev left a comment •

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Superseded by 2b456d3.

@AlexeyShalaev
AlexeyShalaev merged commit a1f5704 into bedrock-python:master Oct 16, 2026
8 checks passed
@bedrock-python bedrock-python locked as resolved and limited conversation to collaborators Oct 17, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

UnhandledErrorInterceptor re-raises grpc.RpcError, so a failed outbound call reaches the caller as UNKNOWN with its details

2 participants