CanineHQ/canine · error · JWT::DecodeError

Failed to fetch JWKS from #{jwks_uri}

Error message

Failed to fetch JWKS from #{jwks_uri}

What it means

Error "Failed to fetch JWKS from #{jwks_uri}" thrown in CanineHQ/canine.

Source

Thrown at app/services/oidc/authenticator.rb:123

        iss: config.issuer,
        aud: config.client_id,
        verify_iss: true,
        verify_aud: true
      })
      decoded.first
    rescue JWT::DecodeError => e
      @logger.error "OIDC auth: JWT decode error - #{e.message}"
      Result.new(success?: false, error_message: "Invalid token: #{e.message}")
    end

    def fetch_jwks
      return @jwks_cache if @jwks_cache

      jwks_uri = config.jwks_uri.presence || discover_endpoint("jwks_uri")
      response = HTTP.get(jwks_uri)

      unless response.status.success?
        raise JWT::DecodeError, "Failed to fetch JWKS from #{jwks_uri}"
      end

      @jwks_cache = JWT::JWK::Set.new(JSON.parse(response.body.to_s))
    end

    def fetch_userinfo(access_token)
      userinfo_endpoint = config.userinfo_endpoint.presence || discover_endpoint("userinfo_endpoint")

      response = HTTP.auth("Bearer #{access_token}").get(userinfo_endpoint)

      unless response.status.success?
        return Result.new(success?: false, error_message: "Failed to fetch user info")
      end

      JSON.parse(response.body.to_s)
    rescue => e
      Result.new(success?: false, error_message: "Failed to fetch user info: #{e.message}")
    end

View on GitHub (pinned to ba4ee3968d)

When it happens

Trigger: Thrown at app/services/oidc/authenticator.rb:123 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of CanineHQ/canine@ba4ee3968d (2026-08-23). Data as JSON: /api/errors/d3e34bd984bb18b9. Report an issue: GitHub.