# Connector credentials, device sign-in, and fixes

Source: https://developer.nylas.com/docs/changelogs/2026-10-22-connector-credentials-device-signin-and-reliability-fixes/

## Added

- **Multiple credentials per connector.** Each connector now has its own page in the Dashboard with separate **Credentials** and **Settings** tabs. Add, edit, or delete a named credential without disturbing the connector's other credentials, and delete a connector you no longer use directly from the connectors list.
- **Device sign-in for the CLI.** Signing in to the Dashboard from the Nylas CLI now uses the OAuth 2.0 Device Authorization Grant ([RFC 8628](https://www.rfc-editor.org/rfc/rfc8628)), with a dedicated device verification page.
- **`message.send_failed` Agent Account trigger.** This trigger is now selectable when configuring a webhook destination for Agent Accounts in the Dashboard.
- **`grant.imap_sync_completed` Dashboard webhook trigger.** You can now select `grant.imap_sync_completed` as a trigger when configuring a webhook destination in the Dashboard. Editing an existing webhook's triggers no longer removes triggers that were added through the API.
- **Expired sandbox Azure credentials banner.** The Dashboard now shows a banner when a sandbox application's Azure credentials have expired, with a one-click action to fix them.

## Fixed

### Email

- **IMAP draft verification.** Saving a draft on an IMAP grant now falls back to STARTTLS when verifying the copy Nylas just saved, fixing drafts that previously failed on IMAP providers that require STARTTLS instead of a direct TLS connection.
- **Draft writes on IMAP grants that hit a lock conflict** now return a retryable `503` instead of an error that couldn't be retried, so your integration can safely retry the request.
- **Inbound messages with non-UTF-8 text content** are no longer dropped during sync; Nylas now stores the message text as received.
- **Transient failures while saving an inbound message** are now retried automatically.
- **Failed sends through Microsoft Graph** no longer leave behind an orphaned draft, and tracked links in a retried send continue to work correctly.
- **Workflow sends through Microsoft Graph** no longer fail a permission scope check when the connected grant's scopes are formatted differently than expected but are otherwise equivalent.
- **Microsoft Graph message lists** no longer fail outright when the provider returns a malformed MIME batch.
- **Gmail reply sends and draft creation** no longer fail when Nylas can't immediately read back the newly created message to verify it; the send or draft itself still completes successfully.
- **SMTP send failure errors** now report the SMTP port Nylas used when the port fallback also fails, making it easier to tell which port to check.
- **Message and draft fields** are now sanitized so they can no longer be used to inject extra MIME headers into an outgoing email.

### Calendar

- **Removing participants from an event** now correctly updates the participant list carried in [`event.updated`](/docs/reference/notifications/events/event-updated/) webhook notifications.
- **Repeated occurrence deletions.** Deleting the same recurring event occurrence more than once no longer sends duplicate webhook notifications for that occurrence.
- **`hide_participants` on invitations and queued sends.** Event invitations now correctly honor the event's [`hide_participants`](/docs/v3/calendar/using-the-events-api/) setting, so participants stay hidden from each other as expected.

### Scheduler

- **Guest cancellations on a recurring event** now cancel only the booked occurrence instead of affecting the whole series.
- **Group bookings on a recurring event** no longer accept the series master's `event_id`; book a specific occurrence instead.
- **Group booking guest cancellations.** When one guest cancels their spot in a group booking, the cancellation notice now names only that guest instead of listing every guest in the group.
- **Scheduler availability for Microsoft calendars** now pages through calendar views with more than 200 events, so availability results no longer miss meetings beyond the first page.

### Dashboard

- **Switching a connector's Google app** from your own OAuth client to the Nylas-hosted shared Google app now creates a new credential instead of overwriting the one you already had configured.
- **Credential update errors.** The Dashboard now explains why a credential update was refused instead of returning a generic error.
- **Account picker pagination.** Account pickers in the Dashboard, including Notetaker account search, now load past their first page of results, and a failed page retries instead of leaving the list stuck.
- **Usage page Agent Account totals.** The Dashboard's Usage page now counts Agent Accounts correctly when calculating the billing period's peak.

### Platform

- **Rate-limit responses from Google** now return the provider's own retry timestamp in the `Retry-After` header. See [handle rate limit errors](/docs/cookbook/use-cases/build/handle-rate-limit-errors/).
- **Newly created webhook destinations** now take effect immediately instead of occasionally waiting on a stale cache entry before their first deliveries succeed.