Clear error recovery paths

Implement error handling that provides both clear recovery paths for users and graceful degradation for the system. This includes: 1. Clear, actionable error messages that guide users to resolution

copy reviewer prompt

Prompt

Reviewer Prompt

Implement error handling that provides both clear recovery paths for users and graceful degradation for the system. This includes:

  1. Clear, actionable error messages that guide users to resolution
  2. Graceful fallbacks when operations fail
  3. Retry mechanisms for transient failures
  4. Early returns to simplify error flows

Example:

def handle_api_request
  return unless result.status.success?

  begin
    json = JSON.parse(result.stdout)
  rescue JSON::ParserError
    nil
  end
rescue AuthenticationError => e
  message = case credentials_type
  when :github_cli_token
    "Your GitHub CLI login session may be invalid.\n" \
    "Refresh it with: gh auth login"
  else
    "Token may be invalid or expired.\n" \
    "Check: https://github.com/settings/tokens"
  end
  raise UserError.new(message)
rescue TemporaryFailure => e
  @retry_count ||= 0
  raise if @retry_count >= MAX_RETRIES

  sleep_time = 2 ** @retry_count
  @retry_count += 1
  retry
end

This approach ensures systems degrade gracefully while providing users clear paths to resolve issues.

Source discussions