Skip to content

fix: resolve stale connection resets and unretried DEADLINE_EXCEEDED errors#63

Open
ravibits wants to merge 4 commits into
mainfrom
fix/bug/stale-conn-deadline-retry
Open

fix: resolve stale connection resets and unretried DEADLINE_EXCEEDED errors#63
ravibits wants to merge 4 commits into
mainfrom
fix/bug/stale-conn-deadline-retry

Conversation

@ravibits
Copy link
Copy Markdown
Contributor

Summary

Two bugs identified from Rocketlane production error logs (8 errors over 3 days):

  • ScalekitAuthClient — HTTP connection pool reused stale TCP connections the server had already closed, causing Connection reset on token refresh. Token refresh only fires once per token TTL (~1h), giving the pool ample time to accumulate stale connections. Fixed by enabling evictExpiredConnections() and evictIdleConnections(30s) on the Apache HttpClient builder.

  • RetryExecuterDEADLINE_EXCEEDED gRPC status was not retried; it fell through to the else branch and threw immediately. UNAUTHENTICATED and UNAVAILABLE were already retried on the same one-retry pattern. DEADLINE_EXCEEDED is equally transient (channel reconnecting after network blip) and now gets the same treatment.

Test plan

  • Ran full integration test suite (make test) against a live environment — 137 tests, 0 new failures introduced
  • Confirmed the 11 pre-existing failures (DirectoryTest, ConnectionTest, UserTests invite errors) are identical on both main and this branch — not caused by these changes

🤖 Generated with Claude Code

ravibits and others added 3 commits May 12, 2026 14:18
- Regenerated gRPC stubs from proto v0.1.121.2
- Implemented: UpdateOrganizationSessionPolicy, GetOrganizationSessionPolicy, GetApplicationSessionPolicy, SearchOrganization, GetOrganizationUserManagementSetting, AssignUserRoles, RemoveUserRole
- Breaking changes: none (removed SessionSettings RPCs were never wrapped)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- searchOrganizations, updateOrganizationSessionPolicy
- getOrganizationSessionPolicy, getApplicationSessionPolicy, getOrganizationUserManagementSetting
- assignUserRoles, removeUserRole

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…errors

Two bugs surfaced from Rocketlane production logs over 3 days:

1. ScalekitAuthClient: HttpClient connection pool was reusing stale TCP
   connections that the server had already closed. This caused
   'Connection reset' errors on token refresh, which only fires once
   per token TTL (~1h), giving the pool plenty of time to go stale.
   Fixed by enabling evictExpiredConnections() and evictIdleConnections(30s).

2. RetryExecuter: DEADLINE_EXCEEDED was not retried — it fell through to
   the else branch and threw immediately. UNAUTHENTICATED and UNAVAILABLE
   were already retried; DEADLINE_EXCEEDED is equally transient and now
   gets one retry on the same pattern.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@ravibits ravibits requested a review from Avinash-Kamath as a code owner May 18, 2026 10:17
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 18, 2026

Important

Review skipped

Too many files!

This PR contains 288 files, which is 138 over the limit of 150.

To get a review, narrow the scope:
• coderabbit review --type committed # exclude uncommitted changes
• coderabbit review --dir # limit to a subdirectory
• coderabbit review --base # compare against a closer base

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 9877c6d0-c48c-432f-9e6f-ae407c43ecae

📥 Commits

Reviewing files that changed from the base of the PR and between 9d24257 and 62e2b40.

📒 Files selected for processing (288)
  • Makefile
  • src/main/java/com/scalekit/api/OrganizationClient.java
  • src/main/java/com/scalekit/api/UserClient.java
  • src/main/java/com/scalekit/api/impl/ScalekitAuthClient.java
  • src/main/java/com/scalekit/api/impl/ScalekitOrganizationClient.java
  • src/main/java/com/scalekit/api/impl/ScalekitUserClient.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/agentkit_logs/AgentkitAnalyticsProto.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/agentkit_logs/AgentkitAnalyticsServiceGrpc.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/agentkit_logs/AgentkitLogsProto.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/agentkit_logs/AgentkitLogsServiceGrpc.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/agentkit_logs/ConnectorStat.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/agentkit_logs/ConnectorStatOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/agentkit_logs/ErrorCodeCount.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/agentkit_logs/ErrorCodeCountOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/agentkit_logs/GetOverviewStatsRequest.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/agentkit_logs/GetOverviewStatsRequestOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/agentkit_logs/GetToolCallLogRequest.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/agentkit_logs/GetToolCallLogRequestOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/agentkit_logs/ListToolCallLogsRequest.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/agentkit_logs/ListToolCallLogsRequestOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/agentkit_logs/ListToolCallLogsResponse.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/agentkit_logs/ListToolCallLogsResponseOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/agentkit_logs/OverviewStats.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/agentkit_logs/OverviewStatsOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/agentkit_logs/TimeSeriesBucket.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/agentkit_logs/TimeSeriesBucketOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/agentkit_logs/ToolCallLog.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/agentkit_logs/ToolCallLogOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/auditlogs/AuditlogsProto.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/auth/AuthProto.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/auth/GetAuthStateResponse.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/auth/GetAuthStateResponseOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/auth/PortalSettings.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/auth/PortalSettingsOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/auth/User.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/auth/UserOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/auth/totp/TotpProto.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/clients/Client.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/clients/ClientOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/clients/ClientsProto.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/clients/ConsentOrganization.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/clients/ConsentOrganizationOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/clients/GetConsentDetailsResponse.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/clients/GetConsentDetailsResponseOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/clients/UpdateClient.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/clients/UpdateClientOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/commons/CommonsProto.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/commons/TimeUnit.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/connected_accounts/AuthorizationDetails.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/connected_accounts/AuthorizationDetailsOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/connected_accounts/ConnectedAccountServiceGrpc.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/connected_accounts/ConnectedAccountsProto.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/connected_accounts/ConnectorStatus.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/connected_accounts/ConnectorType.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/connected_accounts/CreateConnectedAccount.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/connected_accounts/DisconnectConnectedAccountRequest.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/connected_accounts/DisconnectConnectedAccountRequestOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/connected_accounts/DisconnectConnectedAccountResponse.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/connected_accounts/DisconnectConnectedAccountResponseOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/connected_accounts/GetConnectedAccountRequest.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/connected_accounts/GetConnectedAccountRequestOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/connected_accounts/GetConnectedAccountResponse.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/connected_accounts/GetConnectedAccountResponseOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/connected_accounts/GetMagicLinkForConnectedAccountRequest.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/connected_accounts/GetMagicLinkForConnectedAccountRequestOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/connected_accounts/GoogleDWDAuth.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/connected_accounts/GoogleDWDAuthOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/connected_accounts/VerifyConnectedAccountUserRequest.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/connected_accounts/VerifyConnectedAccountUserRequestOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/connected_accounts/VerifyConnectedAccountUserResponse.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/connected_accounts/VerifyConnectedAccountUserResponseOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/connections/Connection.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/connections/ConnectionOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/connections/ConnectionServiceGrpc.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/connections/ConnectionType.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/connections/ConnectionsProto.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/connections/GetConnectionContextRequest.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/connections/GetConnectionContextRequestOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/connections/GetConnectionContextResponse.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/connections/GetConnectionContextResponseOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/connections/GoogleDWDConfig.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/connections/GoogleDWDConfigOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/connections/OAuthConnectionConfig.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/connections/OAuthConnectionConfigOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/connections/OptionalScopes.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/connections/OptionalScopesOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/connections/UpdateConnection.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/connections/UpdateConnectionContextRequest.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/connections/UpdateConnectionContextRequestOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/connections/UpdateConnectionOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/directories/DirectoriesProto.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/directories/DirectoryServiceGrpc.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/directories/GetDirectoryContextRequest.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/directories/GetDirectoryContextRequestOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/directories/GetDirectoryContextResponse.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/directories/GetDirectoryContextResponseOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/directories/UpdateDirectoryContextRequest.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/directories/UpdateDirectoryContextRequestOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/domains/Domain.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/domains/DomainOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/domains/DomainServiceGrpc.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/domains/DomainType.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/domains/DomainsProto.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/domains/ListAuthorizedDomainRequest.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/domains/ListAuthorizedDomainRequestOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/domains/VerificationMethod.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/domains/VerificationStatus.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/domains/VerifyDomainResponse.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/domains/VerifyDomainResponseOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/emails/EmailsProto.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/environments/AgentActionsConfig.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/environments/AgentActionsConfigOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/environments/ConnectedAccountUserVerifyMode.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/environments/CreateAgentActionsConfigRequest.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/environments/CreateAgentActionsConfigRequestOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/environments/CreateAgentActionsConfigResponse.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/environments/CreateAgentActionsConfigResponseOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/environments/EnvironmentServiceGrpc.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/environments/EnvironmentsProto.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/environments/GetAgentActionsConfigRequest.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/environments/GetAgentActionsConfigRequestOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/environments/GetAgentActionsConfigResponse.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/environments/GetAgentActionsConfigResponseOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/environments/GetCurrentSessionResponse.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/environments/GetCurrentSessionResponseOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/environments/GetHostScopedPublicFeatureFlagsResponse.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/environments/GetHostScopedPublicFeatureFlagsResponseOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/environments/GetPortalCustomizationResponse.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/environments/GetPortalCustomizationResponseOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/environments/PortalBootstrapRequest.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/environments/PortalBootstrapRequestOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/environments/PortalBootstrapResponse.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/environments/PortalBootstrapResponseOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/environments/PortalCustomizationBootstrap.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/environments/PortalCustomizationBootstrapOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/environments/PortalSettings.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/environments/PortalSettingsOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/environments/PublicHostFeatureFlag.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/environments/PublicHostFeatureFlagOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/environments/UpdateAgentActionsConfigRequest.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/environments/UpdateAgentActionsConfigRequestOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/environments/UpdateAgentActionsConfigResponse.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/environments/UpdateAgentActionsConfigResponseOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/errdetails/DummyGrpc.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/errdetails/ErrdetailsProto.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/errdetails/HelpInfo.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/errdetails/HelpInfoOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/keys/CreateDEKRequest.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/keys/CreateDEKRequestOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/keys/CreateDEKResponse.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/keys/CreateDEKResponseOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/keys/CreateMasterKeyRequest.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/keys/CreateMasterKeyRequestOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/keys/CreateMasterKeyResponse.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/keys/CreateMasterKeyResponseOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/keys/DEKKeyType.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/keys/DeleteDEKRequest.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/keys/DeleteDEKRequestOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/keys/DestroyDEKRequest.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/keys/DestroyDEKRequestOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/keys/DestroyMasterKeyRequest.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/keys/DestroyMasterKeyRequestOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/keys/EnvironmentKey.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/keys/EnvironmentKeyOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/keys/KeyManagementServiceGrpc.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/keys/KeysProto.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/keys/ListDEKsRequest.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/keys/ListDEKsRequestOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/keys/ListDEKsResponse.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/keys/ListDEKsResponseOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/keys/MasterKey.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/keys/MasterKeyOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/keys/RotateDEKRequest.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/keys/RotateDEKRequestOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/keys/RotateDEKResponse.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/keys/RotateDEKResponseOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/keys/RotateMasterKeyRequest.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/keys/RotateMasterKeyRequestOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/keys/RotateMasterKeyResponse.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/keys/RotateMasterKeyResponseOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/keys/SetActiveDEKRequest.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/keys/SetActiveDEKRequestOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/keys/SetActiveDEKResponse.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/keys/SetActiveDEKResponseOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/keys/SetActiveMasterKeyRequest.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/keys/SetActiveMasterKeyRequestOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/keys/SetActiveMasterKeyResponse.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/keys/SetActiveMasterKeyResponseOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/members/MembersProto.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/migrations/MigrateEnvKeysRequest.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/migrations/MigrateEnvKeysRequestOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/migrations/MigrateEnvKeysResponse.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/migrations/MigrateEnvKeysResponseOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/migrations/MigrationServiceGrpc.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/migrations/MigrationsProto.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/options/AuthenticationType.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/options/OptionsProto.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/organizations/ApplicationSessionPolicySettings.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/organizations/ApplicationSessionPolicySettingsOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/organizations/CreateOrganization.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/organizations/CreateOrganizationOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/organizations/CreateOrganizationSessionSettingsRequestOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/organizations/CreateOrganizationSessionSettingsResponseOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/organizations/DeleteOrganizationSessionSettingsRequestOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/organizations/GeneratePortalLinkRequest.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/organizations/GeneratePortalLinkRequestOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/organizations/GetApplicationSessionPolicyRequest.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/organizations/GetApplicationSessionPolicyRequestOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/organizations/GetApplicationSessionPolicyResponse.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/organizations/GetApplicationSessionPolicyResponseOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/organizations/GetOrganizationSessionPolicyRequest.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/organizations/GetOrganizationSessionPolicyRequestOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/organizations/GetOrganizationSessionPolicyResponse.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/organizations/GetOrganizationSessionPolicyResponseOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/organizations/GetOrganizationSessionSettingsRequestOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/organizations/GetOrganizationSessionSettingsResponseOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/organizations/Organization.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/organizations/OrganizationOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/organizations/OrganizationServiceGrpc.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/organizations/OrganizationSessionPolicySettings.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/organizations/OrganizationSessionPolicySettingsOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/organizations/OrganizationSessionSettings.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/organizations/OrganizationSessionSettingsOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/organizations/OrganizationsProto.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/organizations/SessionPolicyType.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/organizations/UpdateOrganization.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/organizations/UpdateOrganizationOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/organizations/UpdateOrganizationSessionPolicyRequest.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/organizations/UpdateOrganizationSessionPolicyRequestOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/organizations/UpdateOrganizationSessionPolicyResponse.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/organizations/UpdateOrganizationSessionPolicyResponseOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/organizations/UpdateOrganizationSessionSettingsRequest.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/organizations/UpdateOrganizationSessionSettingsRequestOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/organizations/UpdateOrganizationSessionSettingsResponse.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/organizations/UpdateOrganizationSessionSettingsResponseOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/providers/CreateCustomProvider.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/providers/CreateCustomProviderOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/providers/CreateCustomProviderRequest.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/providers/CreateCustomProviderRequestOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/providers/ListProvidersRequest.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/providers/ListProvidersRequestOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/providers/Provider.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/providers/ProviderOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/providers/ProviderServiceGrpc.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/providers/ProviderType.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/providers/ProvidersProto.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/providers/UpdateCustomProvider.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/providers/UpdateCustomProviderOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/providers/UpdateCustomProviderRequest.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/providers/UpdateCustomProviderRequestOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/providers/UpdateProviderRequest.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/providers/UpdateProviderRequestOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/roles/RolesProto.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/tools/ExecuteToolRequest.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/tools/ExecuteToolRequestOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/tools/Filter.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/tools/FilterOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/tools/ListAvailableToolsRequest.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/tools/ListAvailableToolsRequestOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/tools/ListAvailableToolsResponse.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/tools/ListAvailableToolsResponseOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/tools/ToolServiceGrpc.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/tools/ToolsProto.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/users/AssignRoleRequest.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/users/AssignRoleRequestOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/users/CreateUserProfile.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/users/CreateUserProfileOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/users/UpdateUserProfile.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/users/UpdateUserProfileOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/users/UsersProto.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/workspaces/CreateWorkspaceDomainRequest.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/workspaces/CreateWorkspaceDomainRequestOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/workspaces/CreateWorkspaceDomainResponse.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/workspaces/CreateWorkspaceDomainResponseOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/workspaces/DeleteWorkspaceDomainRequest.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/workspaces/DeleteWorkspaceDomainRequestOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/workspaces/ListWorkspaceDomainsRequest.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/workspaces/ListWorkspaceDomainsRequestOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/workspaces/ListWorkspaceDomainsResponse.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/workspaces/ListWorkspaceDomainsResponseOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/workspaces/OnboardWorkspace.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/workspaces/OnboardWorkspaceOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/workspaces/ValidateWorkspaceDomainRequest.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/workspaces/ValidateWorkspaceDomainRequestOrBuilder.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/workspaces/WorkspaceServiceGrpc.java
  • src/main/java/com/scalekit/grpc/scalekit/v1/workspaces/WorkspacesProto.java
  • src/test/java/OrganizationTests.java
  • src/test/java/UserTests.java

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 fix/bug/stale-conn-deadline-retry

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 and usage tips.

Retrying DEADLINE_EXCEEDED is unsafe for non-idempotent write operations —
if the call reached the server before the deadline fired, a retry duplicates
the request. Reverting until server-side idempotency keys are in place.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.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.

1 participant