Service Desk Troubleshooting

Basic process on troubleshooting Service Desk within GitLab.com.

Overview

Users can experience various issues while utilizing Service Desk. This guide walks through troubleshooting when an email does not generate a Service Desk issue.

See also, the Service Desk runbook doc.

Troubleshooting Steps

  1. When an issue related to Service Desk is received, verify with the customer these common occurrences are not applicable:

    1. Service Desk not sending to CC:
    2. Attachments cannot be over 10MB
    3. Emails with Auto-Submitted or X-Autoreply in the header are ignored
  2. If known issues above are not the cause, request the following from the user:

    1. The source email (including headers) for an example email sent to the Service Desk which did not create an issue. If possible, request the source email be provided as an .eml file to preserve the email headers.
    2. A link to the GitLab.com project which the email was attempting to send to.
    3. Did the sender receive a reply (failure)? If yes,
      1. Request a screenshot of the failure message.
      2. Search Kibana by any of the following:
        1. In Rails: Sender’s IP address (json.remote_ip)
        2. In Sidekiq: Service Desk Email (json.to_address)
        3. In Sidekiq: Message ID (json.mail_uid)
      3. You may also search Kibana using this query and filtering on the json.meta.project attribute.
      4. Search the mg.gitlab.com mail logs in Mailgun for suppressions
      5. Create an issue in the GitLab issue tracker providing all information found
    4. Did the sender receive a reply (failure)? If no,
      1. Send a Slack message to #production, asking for a check of the spam folder in the incoming gmailbox for the Service Desk target email

Email to Service Desk Email Flow

graph TD;
  subgraph "User Email to Service Desk Issue"
  SubGraph1Flow(Email to Service Desk)
  SubGraph2Flow(Spam?)
  SubGraph3Flow(Mailgun/Support Bot Sends Confirmation to Sender)
  Node1[User Email/CRM] --> Node2[Optional: User Alias]
  Node2[Optional: User Alias] --> SubGraph1Flow
  DoChoice1(Mailgun sends failure notice to sender)
  SubGraph1Flow -- Failure --> DoChoice1
  SubGraph1Flow -- Success  --> SubGraph2Flow
  DoChoice3(Send to gmail spam folder and Service Desk email is not processed)
  DoChoice4(Send to gmail Inbox and Service Desk email is processed)
  SubGraph2Flow -- Yes --> DoChoice3
  SubGraph2Flow -- No  --> DoChoice4 --> SubGraph3Flow
end

Mermaid source:

    ```mermaid
        graph TD;
          subgraph "User Email to Service Desk Issue"
          SubGraph1Flow(Email to Service Desk)
          SubGraph2Flow(Spam?)
          SubGraph3Flow(Mailgun/Support Bot Sends Confirmation to Sender)
          Node1[User Email/CRM] --> Node2[Optional: User Alias]
          Node2[Optional: User Alias] --> SubGraph1Flow
          DoChoice1(Mailgun sends failure notice to sender)
          SubGraph1Flow -- Failure --> DoChoice1
          SubGraph1Flow -- Success  --> SubGraph2Flow
          DoChoice3(Send to gmail spam folder and Service Desk email is not processed)
          DoChoice4(Send to gmail Inbox and Service Desk email is processed)
          SubGraph2Flow -- Yes --> DoChoice3
          SubGraph2Flow -- No  --> DoChoice4 --> SubGraph3Flow
        end
    ```