---
title: "Diagnose connection failures"
description: "Find the provider-specific symptom and the action that resolves it."
canonical_url: "https://docs.oz0.ai/admin/connections/troubleshooting"
---
# Diagnose connection failures

> Find the provider-specific symptom and the action that resolves it.

For: cluster and tenant administrators.

Find the provider-specific symptom and the action that resolves it.

## Troubleshooting

Slack

- *The page keeps waiting for Slack's URL check.* Slack checks the Request URL once when the app is made, before the edge knows the signing secret, so that first check fails; that is expected. After pasting, open your app's Event Subscriptions page and click Retry next to the Request URL. If Slack still says the URL did not answer, Slack cannot reach `https://<edge>/events/<tenant>/slack`: check `--public-edge-url`, the certificate, and that the plugin is installed in the tenant.
- *"A delivery reached the edge, but its signature did not match".* The pasted Signing Secret is not this app's (the Client Secret and the Verification Token look alike). Copy the Signing Secret from Basic Information, App Credentials, paste it again, and click Retry.
- *`bad_client_secret` or `invalid_client_id` when you paste.* The Client ID or the Client Secret is not this app's: copy both again from Basic Information, App Credentials (click Show for the secret). The same error at the install means the secret was regenerated since: start again from the first step. *`bad_redirect_uri`*: the app's Redirect URL (OAuth & Permissions) must be the connection's callback, which the manifest set; it changes when `--public-edge-url` does.
- *`missing_scope` when the app posts.* An app made by hand, or edited since, lacks a bot scope: give it `app_mentions:read`, `chat:write`, `commands`, `channels:history`, `groups:history` and `im:history` under OAuth & Permissions, then connect again from the `install` step. *`not_in_channel`*: invite the app to the channel.

Discord

- *The developer portal will not save the Interactions Endpoint URL.* Discord sends a signed PING and a request with a bad signature when you save it; the edge answers the first only with the right public key and refuses the second. Paste the Public Key from General Information again (it is 64 hexadecimal characters; not the Client Secret), and check that Discord reaches `https://<edge>/events/<tenant>/discord` with a certificate it trusts.
- *The page says the PING's signature did not match.* The same: a wrong public key. Paste it again on the first step.
- *The token check fails.* `bot="..."` means a person's token was pasted, and `id="..."` on the application check another application's bot: copy the token from this application's Bot page (Reset Token). A 401 means the token was reset since; reset it and paste the new one.
- *The secret check answers 401 `invalid_client`.* The Client Secret is not this application's, or was reset since: on OAuth2, click Reset Secret and paste the new one.
- *`Invalid OAuth2 redirect_uri` when you pick the server.* Add the Redirect the page showed under OAuth2, Redirects.

Microsoft Teams: see [its troubleshooting](https://docs.oz0.ai/build/plugins/verified/teams#troubleshooting) (a secret's ID pasted for its value, a tenant ID of another tenant, an install step that waits because Teams cannot reach the edge).

GitHub

- *A 404 on GitHub's page, or "you must be an owner".* The app is registered on an organization you own; for your own personal account, start with `--param account=user` (in the console, the account select).
- *"Name has already been taken".* GitHub app names are unique across GitHub; change it on GitHub's page before you create the app, or give `--param app_name=...`.
- *Webhook deliveries fail on the app's Advanced page.* GitHub cannot reach `https://<edge>/events/<tenant>/github`: check `--public-edge-url` and the certificate.


## Sitemap

See the full [sitemap](https://docs.oz0.ai/sitemap.md) for all pages.
