{"record":{"id":"fabde61e98c2fc03","repo":"CanineHQ/canine","slug":"failed-to-fetch-oidc-discovery-document","errorCode":null,"errorMessage":"Failed to fetch OIDC discovery document","messagePattern":"Failed to fetch OIDC discovery document","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"app/services/oidc/authenticator.rb","lineNumber":158,"sourceCode":"      Result.new(success?: false, error_message: \"Failed to fetch user info: #{e.message}\")\n    end\n\n    def extract_groups(claims)\n      # Common group claims from various OIDC providers\n      groups = claims[\"groups\"] || claims[\"roles\"] || claims[\"cognito:groups\"] || []\n      groups = [ groups ] unless groups.is_a?(Array)\n      groups.map { |g| { name: g.to_s } }\n    end\n\n    def discover_endpoint(endpoint_name)\n      discovery_doc[endpoint_name]\n    end\n\n    def discovery_doc\n      return @discovery_cache if @discovery_cache\n\n      response = HTTP.get(config.discovery_url)\n      raise \"Failed to fetch OIDC discovery document\" unless response.status.success?\n\n      @discovery_cache = JSON.parse(response.body.to_s)\n    end\n  end\nend\n","sourceCodeStart":140,"sourceCodeEnd":164,"githubUrl":"https://github.com/CanineHQ/canine/blob/ba4ee3968d8513ee27d8583fbd3e854a8dd053f3/app/services/oidc/authenticator.rb#L140-L164","documentation":"Error \"Failed to fetch OIDC discovery document\" thrown in CanineHQ/canine.","triggerScenarios":"Thrown at app/services/oidc/authenticator.rb:158 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"ba4ee3968d8513ee27d8583fbd3e854a8dd053f3","analyzedAt":"2026-08-23T17:49:27.834Z","schemaVersion":2},"datasetVersion":"2026-08-23T21:17:23.414Z"}