{"record":{"id":"fc6a41d337f9711d","repo":"CanineHQ/canine","slug":"please-add-your-portainer-api-token-in-the-credent","errorCode":null,"errorMessage":"Please add your Portainer API token in the Credentials settings.","messagePattern":"Please add your Portainer API token in the Credentials settings\\.","errorType":"exception","errorClass":"Portainer::Client::MissingCredentialError","httpStatus":null,"severity":"error","filePath":"lib/portainer/stack.rb","lineNumber":23,"sourceCode":"  def initialize(stack_manager)\n    @stack_manager = stack_manager\n  end\n\n  # Ugh, this is only used for testing.\n  def _connect_with_client(client)\n    @_client = client\n    self\n  end\n\n  def retrieve_access_token(user, allow_anonymous: false)\n    if !stack_manager.enable_role_based_access_control && stack_manager.access_token.present?\n      Portainer::Client::AccessToken.new(stack_manager.access_token)\n    elsif user.present? && user.stack_manager_access_token(stack_manager).present?\n      Portainer::Client::AccessToken.new(user.stack_manager_access_token(stack_manager))\n    elsif user.nil? && allow_anonymous && stack_manager.access_token.present?\n      Portainer::Client::AccessToken.new(stack_manager.access_token)\n    else\n      raise Portainer::Client::MissingCredentialError, \"Please add your Portainer API token in the Credentials settings.\"\n    end\n  end\n\n  def connect(user, allow_anonymous: false)\n    provider_url = if Rails.configuration.remap_localhost.present?\n      K8::Kubeconfig.remap_localhost(stack_manager.provider_url)\n    else\n      stack_manager.provider_url\n    end\n\n    @_client = Portainer::Client.new(\n      provider_url,\n      retrieve_access_token(user, allow_anonymous:),\n    )\n    self\n  end\n\n  def client","sourceCodeStart":5,"sourceCodeEnd":41,"githubUrl":"https://github.com/CanineHQ/canine/blob/ba4ee3968d8513ee27d8583fbd3e854a8dd053f3/lib/portainer/stack.rb#L5-L41","documentation":"Error \"Please add your Portainer API token in the Credentials settings.\" thrown in CanineHQ/canine.","triggerScenarios":"Thrown at lib/portainer/stack.rb:23 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"}