{"record":{"id":"6c14b234a3c7e3f1","repo":"CanineHQ/canine","slug":"invalid-username-or-password","errorCode":null,"errorMessage":"Invalid username or password","messagePattern":"Invalid username or password","errorType":"exception","errorClass":"AuthenticationError","httpStatus":null,"severity":"error","filePath":"lib/portainer/client.rb","lineNumber":83,"sourceCode":"          headers: { 'Content-Type' => 'application/json' },\n          body: { code: auth_code }.to_json\n        )\n      end\n\n      if response.success?\n        jwt = response.parsed_response['jwt']\n        username_response = get(\n          \"#{provider_url}/api/users/me\",\n          headers: { 'Authorization' => \"Bearer #{jwt}\" },\n        )\n\n        Portainer::Data::User.new(\n          id: username_response.parsed_response['Id'],\n          username: username_response.parsed_response['Username'],\n          jwt:\n        )\n      else\n        raise AuthenticationError, \"Invalid username or password\"\n      end\n    rescue Socket::ResolutionError\n      raise ConnectionError, \"Portainer URL is not resolvable\"\n    rescue Net::ReadTimeout, Net::OpenTimeout\n      raise ConnectionError, \"Connection to Portainer timed out\"\n    end\n\n    def registries\n      registries_data = get(\"/api/registries\")\n      registries_data.map do |registry_data|\n        Portainer::Data::Registry.new(\n          id: registry_data[\"Id\"],\n          name: registry_data[\"Name\"],\n          url: registry_data[\"URL\"],\n          username: registry_data[\"Username\"],\n          password: registry_data[\"Password\"],\n          authentication: registry_data[\"Authentication\"]\n        )","sourceCodeStart":65,"sourceCodeEnd":101,"githubUrl":"https://github.com/CanineHQ/canine/blob/ba4ee3968d8513ee27d8583fbd3e854a8dd053f3/lib/portainer/client.rb#L65-L101","documentation":"Error \"Invalid username or password\" thrown in CanineHQ/canine.","triggerScenarios":"Thrown at lib/portainer/client.rb:83 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"}