Skip to main content

Support

The Support module submits a support ticket on behalf of a signed-in user. The SDK does not talk to the ticketing system directly: it sends an encrypted request to the ExpressVPN backend, which creates the ticket and returns its id.

info

To attach SDK log files to a ticket, use the Logs Collector module instead. The two are independent: a Support ticket carries a message and a diagnostic string, a Logs Collector ticket carries files.

submit_support_ticket​

Submits a ticket and returns the id the backend created for it.

func submitSupportTicket(userMessage: String, errorDetails: String) throws -> String
func submitSupportTicketAsync(userMessage: String, errorDetails: String) async throws -> String

Parameters​

NameDescription
user_messageThe message the user wrote to describe the issue
error_detailsDiagnostic details attached to the ticket, such as a log excerpt
warning

The SDK sends error_details as given. Remove personal data from it before calling this method.

Returns​

The ticket id upon success, SupportException otherwise.

The call fails when:

  • the user is not signed in with an ExpressVPN account, so no access and refresh tokens are cached;
  • the request cannot reach the backend;
  • the backend answers with a non-200 status.

Example​

let ticketId = try await manager.support().submitSupportTicketAsync(
userMessage: "Cannot connect since this morning",
errorDetails: sanitizedDiagnostics
)