--- title: "Courier troubleshooting" slug: "courier-troubleshooting" description: "Troubleshoot email notifications in Quickbase Courier with step-by-step checks to ensure your configurations send emails as expected." updated: 2026-10-09T18:03:46Z published: 2026-10-09T18:03:46Z canonical: "help.quickbase.com/courier-troubleshooting" --- > ## Documentation Index > Fetch the complete documentation index at: https://help.quickbase.com/llms.txt > Use this file to discover all available pages before exploring further. # Courier troubleshooting Use this page when a Courier configuration doesn't send the emails you expect. ## Troubleshooting email notifications A triggered configuration runs when a Quickbase email notification sends a request to Courier. See [Email notification setup for triggered configurations](/quickbase-extensions/docs/courier-email-notification-setup-triggered) for how to set it up. If a triggered configuration doesn't send the emails you expect, work through these checks in order. ### 1. Check that the notification fires Courier can only run when it receives the notification. To confirm the notification is going out, temporarily add your own email address to the notification's list of email addresses, next to `qbcourier@courier.quickbasetools.com`, and change a record the way your users would. - **You don't receive a copy**—the notification isn't firing. Check its **Notify When** settings and conditions against the change you made. Courier isn't involved yet. - **You receive a copy**—the notification is firing. Look at the copy you received and continue with the next check. Remove your address from the notification when you're done. ### 2. Check the notification settings Compare the notification with the values on the configuration's **Finish** tab (**View Email Notification Settings**): - The email address is exactly `qbcourier@courier.quickbasetools.com`. - The custom message includes `configkey=` with your configuration's key. A request without the key, or with a key that doesn't match, is not processed. - The `configid=` value matches the configuration you expect—for example, after you duplicated a configuration, the notification may still point to the original. - For the **Multiple Record Version**, the custom message line sits on its own line between `%RepeatOn%` and `%RepeatOff%`. In the copy you received, each record should appear on a separate line. If the lines run together, Courier can't tell the records apart and processes only one of them. Create a new email notification from the values on the **Finish** tab (rather than copying the existing one), and disable the old notification. ### 3. Check the configuration - **Processing Mode** is **Trigger**. On Demand and Scheduled configurations don't take a record ID—a request that includes `recid=` for one of them is not processed. - **Status** is **Enabled**. In **Test Mode**, emails go only to the **Copy email** address; a **Disabled** configuration doesn't run. ### 4. Check the source of the email notification Courier reads the custom message as plain text. If the notification's message contains HTML tags—often added when the line is pasted with formatting or styled in the editor—Courier can't read the values and doesn't process the request. 1. In the copy of the notification you received in check 1, view the message source (for example, **Show original** in Gmail or **View source** in Outlook) and find the custom message line. 2. Look for HTML tags or entities mixed into the line, such as `<div>`, `<span>`, `<p>`, `<font>`, `style="..."` attributes, or `&nbsp;` between the values. 3. If you find any, open the email notification in Quickbase and remove the additional HTML tags so only the plain text remains, for example: ```plaintext configid=Q123:4567 recid=[Record ID#] configkey=a1b2c3 type=courier ``` For the **Multiple Record Version**, keep `%RepeatOn%`, the custom message line, and `%RepeatOff%` each on their own line. 4. Save the notification and fire it again to confirm. ### 5. Check the configuration's activities In the Courier configurations list, select the **Activities** icon for the configuration. Each run shows the run date, run mode, the record ID processed, the number of emails to be sent and sent, records bypassed and updated, and **Processing Details**. If there is no activity for the time the notification fired, Courier didn't receive or accept the request—go back to checks 1 to 4. **Processing Details** explains why a record was skipped or an email wasn't sent. Common reasons: | Processing details | What to do | | --- | --- | | The email addresses are invalid, or *Found Email Addresses that were blank.* | Check the value of the configuration's **Email field** on that record. Separate multiple addresses with `;`. | | Fields are missing in the clist used to select the data for the message. | A field used in the subject or message isn't in the configuration's **Message/Subject Field List**. Courier adds a field to this list only when you drag it from **Table Fields** into the subject or message on the **Email Message** tab; a field name typed by hand in square brackets isn't added, and saving the tab again doesn't update the list. Drag the field in, or type its field ID into **Message/Subject Field List** (separate field IDs with a period), and save the tab. | | A limit was reached (per run, daily, monthly, or file attachments). | Check **View Limits** on the configuration. To raise a limit, submit a technical support case. | | Unable to include the HTML table in your email body message. | An embedded table in the message isn't set up correctly. Check the table settings in the message body. | | The Office 365 refresh token has expired. | Regenerate the refresh token. See [Office 365 refresh token expired](/quickbase-extensions/docs/courier-troubleshooting#office-365-refresh-token). | ### 6. The email was sent but not received If the activity shows the email as sent (and the configuration's **Update field** was updated), Courier handed the email to the mail server. If a recipient still doesn't get it: - Ask the recipient to check their spam or junk folder, and to allow the sending address. - If you send from your own mail server, check whether anything changed on that account—for example, a new password, an expired Gmail app password, or an Office 365 refresh token that needs to be regenerated. Use **Test Mail Server Settings** on the mail server to confirm it can still send. - Check the SPF, DKIM, and DMARC records for your mail domain. See [DNS considerations for your mail domain](/quickbase-extensions/docs/dns-considerations-for-your-mail-domain). ### 7. IP filtering on your Quickbase account If your Quickbase account restricts access by IP address, Courier can't read your records or update them. Add these Courier IP addresses to your allowed list: ```plaintext 3.219.142.212/32 32.193.119.5/32 34.231.252.118/32 ``` ### Still not working? [Submit a technical support case](https://help.quickbase.com/docs/get-help-from-quickbase-technical-support) and include: - The Courier configuration ID. - The Record ID# of a record that should have sent an email. - The date and time (with time zone) the notification fired. - The copy of the notification you received in check 1. ## Office 365 refresh token expired When a configuration sends through your own Office 365 mail server with modern authentication, Courier signs in to that mailbox with a **refresh token**. You generate the token once from the mail server in the Extensions Portal. When the token expires or is revoked, Courier can no longer send from that mailbox. ### What you'll see - The configuration's activities show the error *QB Courier is unable to send out email(s), your Office 365 Refresh Token has expired.* - Emails stop for every configuration that uses that mail server. When the error occurs, Courier stops processing the remaining records for that configuration in that run. - Emails that failed aren't sent again automatically. After you regenerate the token, fire the notification again or run the configuration again for the records that were missed. ### Why the token expires - **It reached the lifetime set by your organization's Microsoft 365 policy.** The default is 90 days; your Microsoft 365 administrator can confirm the policy for your organization. - **The mailbox password changed.** Changing the password of the mailbox Courier sends from invalidates the token—regenerate it every time the password changes. - **Access was revoked** by your Microsoft 365 administrator, for example, by signing the mailbox out of all sessions. ### Regenerate the refresh token 1. In the Extensions Portal, on the **QB Courier** tile, select **Mail Servers**. 2. Edit the Office 365 mail server. The form shows the **Refresh Token Generated Date** of the current token. 3. Select the **Please check here to regenerate the refresh token** checkbox. 4. Select **Generate Refresh Token**. A new browser tab opens. 5. In the new tab, select **Generate Token** and sign in to Microsoft with the mailbox that's entered as the mail server's **User name**—the same address Courier sends from. 6. Return to the mail server form and select **Refresh Settings**. The **Refresh Token Generated Date** changes to today. 7. Set **Refresh Token Expiration Days** to match your organization's policy (**30 days**, **60 days**, **90 days**, **120 days**, or **Does not expire**), and select **Save**. 8. Select **Test Mail Server Settings**, enter an email address, and select **Test Mail Server Settings** to confirm Courier can send again. > [!WARNING] > Important > > The token must be generated while signed in as the mail server's mailbox. If your browser is already signed in to a different Microsoft account, the token is created for that account and Courier still can't send. Copy the link from the new tab into a private (incognito) browser window, sign in with the mail server's mailbox, and generate the token there. ### Avoid interruptions - Note the **Refresh Token Generated Date** and your organization's token lifetime, and regenerate the token before it expires. The **Refresh Token Expiration Days** setting records your policy—it doesn't extend the token. - Regenerate the token right after anyone changes the mailbox password. - Use a dedicated mailbox for Courier, so password changes for a person's account don't stop your emails. > [!NOTE] > Note > > The Office 365 refresh token is different from the **Quickbase user token** Courier uses to read and update your Quickbase app. An error such as *Please provide a valid Quickbase USER TOKEN to execute this add-on.* means the Quickbase user token needs updating, not the refresh token. Update it under **Client Credentials** in the Extensions Portal.