Skip to content

Unhandled DetailedApiRequestError for 404 in secrets #7869

@jonasfj

Description

@jonasfj

This is probably extra bad because it's likely wrapped by a retry loop, and we should retry 404 exceptions!

We should definitely make sure we do retry 404s here 🤣

I think this only affects staging, but in general it seems like a thing worth fixing, could otherwise introduce pain next time we make a secret, but don't create it immediately.

pub.secrets: [pub-notice:lookup-secret-failed] Failed to fetch/access secret from SecretManager API

Error:
    DetailedApiRequestError(status: 404, message: Secret [projects/****/secrets/upload-restriction] not found or has no versions.)

Stack:
    #0      validateResponse (package:_discoveryapis_commons/src/api_requester.dart:306:9)
    <asynchronous suspension>
    #1      ApiRequester.request (package:_discoveryapis_commons/src/api_requester.dart:72:16)
    <asynchronous suspension>
    #2      ProjectsSecretsVersionsResource.access (package:googleapis/secretmanager/v1.dart:634:23)
    <asynchronous suspension>
    #3      GcpSecretBackend._lookup.<anonymous closure> (package:pub_dev/service/secret/backend.dart:77:21)
    <asynchronous suspension>
    #4      RetryOptions.retry (package:retry/retry.dart:131:16)
    <asynchronous suspension>
    #5      GcpSecretBackend._lookup (package:pub_dev/service/secret/backend.dart:76:22)
    <asynchronous suspension>
    #6      PackageBackend.getUploadRestrictionStatus (package:pub_dev/package/backend.dart:1614:19)
    <asynchronous suspension>
    #7      PackageBackend.startUpload (package:pub_dev/package/backend.dart:859:25)
    <asynchronous suspension>
    #8      PubApi.getPackageUploadUrl (package:pub_dev/frontend/handlers/pubapi.dart:106:7)
    <asynchronous suspension>
    #9      _$PubApiRouter.<anonymous closure> (package:pub_dev/frontend/handlers/pubapi.g.dart:124:26)
    <asynchronous suspension>
    #10     RouterEntry.invoke.<anonymous closure> (package:shelf_router/src/router_entry.dart:107:16)
    <asynchronous suspension>
    #11     RouterEntry.invoke (package:shelf_router/src/router_entry.dart:104:12)
    <asynchronous suspension>
    #12     Router.call (package:shelf_router/src/router.dart:184:26)
    <asynchronous suspension>
    #13     createAppHandler.<anonymous closure> (package:pub_dev/frontend/handlers.dart:71:16)
    <asynchronous suspension>
    #14     _redirectLoopDetectorWrapper.<anonymous closure> (package:pub_dev/shared/handler_helpers.dart:93:16)
    <asynchronous suspension>
    #15     _cspHeaderWrapper.<anonymous closure> (package:pub_dev/shared/handler_helpers.dart:147:16)
    <asynchronous suspension>
    #16     _userAuthWrapper.<anonymous closure>.<anonymous closure> (package:pub_dev/shared/handler_helpers.dart:243:34)
    <asynchronous suspension>
    #17     AccountBackend.withBearerToken.<anonymous closure> (package:pub_dev/account/backend.dart:274:16)
    <asynchronous suspension>
    #18     _ServiceScope._runScopeExitHandlers (package:gcloud/service_scope.dart:241:3)
    <asynchronous suspension>
    #19     AccountBackend.withBearerToken (package:pub_dev/account/backend.dart:272:14)
    <asynchronous suspension>
    #20     _userAuthWrapper.<anonymous closure> (package:pub_dev/shared/handler_helpers.dart:242:12)
    <asynchronous suspension>
    #21     _requestContextWrapper.<anonymous closure> (package:pub_dev/shared/handler_helpers.dart:135:14)
    <asynchronous suspension>
    #22     _httpsWrapper.<anonymous closure> (package:pub_dev/shared/handler_helpers.dart:258:25)
    <asynchronous suspension>
    #23     _sanitizeRequestWrapper.<anonymous closure> (package:pub_dev/shared/handler_helpers.dart:226:12)
    <asynchronous suspension>
    #24     _logRequestWrapper.<anonymous closure> (package:pub_dev/shared/handler_helpers.dart:171:14)
    <asynchronous suspension>
    #25     handleRequest (package:shelf/shelf_io.dart:138:16)
    <asynchronous suspension>

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions