Le bot Teams de quelqu’un d’autre a-t-il aussi cessé de fonctionner aujourd’hui ?
Oui, nous constatons le même problème dans notre espace de travail également.
Bonjour,
Oui, vous n’êtes pas seul dans cette situation. Les arrêts soudains de bots Teams affectent régulièrement de nombreuses organisations, et les causes peuvent être très variées. Cette réponse couvre les raisons les plus fréquentes pour lesquelles un bot Microsoft Teams cesse de fonctionner subitement, et les étapes de diagnostic et résolution.
Causes fréquentes d’arrêt soudain d’un bot Teams
Vue d’ensemble
| Cause | Fréquence | Gravité |
|---|---|---|
| Expiration du secret client (client secret) de l’app Azure AD | Très fréquente | Bloquante |
| Incident de service Microsoft (Azure Bot Service, Teams) | Fréquente | Bloquante mais temporaire |
| Webhook ou endpoint de bot inaccessible | Fréquente | Bloquante |
| Certificat SSL expiré sur le serveur du bot | Fréquente | Bloquante |
| Permissions d’application révoquées ou modifiées | Moins fréquente | Bloquante |
| Changement dans les politiques Teams de l’organisation | Moins fréquente | Bloquante |
| Quota API dépassé (Microsoft Graph ou Bot Framework) | Occasionnelle | Partielle |
Étape 1 : Vérifier l’état des services Microsoft
Avant toute chose, vérifiez si Microsoft rencontre un incident de service.
Tableau de bord de santé des services Microsoft 365 :
- Portail admin : admin.microsoft.com > Intégrité > État du service
- Page publique : status.office365.com
- Azure Status : status.azure.com
Si un incident est en cours sur Microsoft Teams ou Azure Bot Service, votre bot est probablement victime d’une panne globale ou régionale — dans ce cas, il suffit d’attendre la résolution.
Étape 2 : Vérifier le secret client de l’application Azure AD
La cause la plus fréquente
La raison numéro 1 des arrêts de bots Teams est l’expiration du secret client (Client Secret) de l’application Azure AD associée au bot. Par défaut, ces secrets sont créés avec une durée de validité de 1 an — et quand ils expirent, le bot cesse immédiatement de fonctionner sans message d’erreur explicite pour l’utilisateur final.
Vérification dans le portail Azure
- Connectez-vous à portal.azure.com
- Naviguez vers Azure Active Directory (Entra ID) > Inscriptions d’applications
- Trouvez l’application enregistrée pour votre bot
- Cliquez sur “Certificats et secrets”
- Vérifiez la colonne “Date d’expiration” de chaque secret
# Lister toutes les applications Entra ID et leurs secrets expirés via Graph PowerShell
Connect-MgGraph -Scopes "Application.Read.All"
$apps = Get-MgApplication -All
foreach ($app in $apps) {
foreach ($secret in $app.PasswordCredentials) {
if ($secret.EndDateTime -lt (Get-Date).AddDays(30)) {
Write-Host "App: $($app.DisplayName) | Secret expiration: $($secret.EndDateTime)" -ForegroundColor Red
}
}
}
Renouveler le secret client
- Dans “Certificats et secrets”, cliquez sur “+ Nouveau secret client”
- Donnez une description et choisissez une durée de validité (recommandation : 24 mois maximum, puis planifiez le renouvellement)
- Copiez immédiatement la valeur du secret — elle n’est visible qu’une seule fois
- Mettez à jour la valeur du secret dans la configuration de votre bot (variables d’environnement, Key Vault, appsettings.json, etc.)
- Redémarrez le service hébergeant le bot
Étape 3 : Vérifier l’accessibilité du endpoint du bot
Teams envoie des messages à votre bot via une URL HTTPS appelée Messaging Endpoint. Si cette URL n’est plus accessible (serveur arrêté, changement IP, DNS périmé), le bot ne reçoit plus aucun message.
Vérification dans Azure Bot Service
- Portail Azure > Azure Bot (ou Bot Services)
- Onglet “Configuration”
- Vérifiez l’URL dans le champ “Messaging endpoint”
# Tester l'accessibilité du endpoint depuis PowerShell
$botEndpoint = "https://votre-bot.azurewebsites.net/api/messages"
try {
$response = Invoke-WebRequest -Uri $botEndpoint -Method POST -UseBasicParsing -TimeoutSec 10
Write-Host "Endpoint accessible - Code: $($response.StatusCode)"
} catch {
Write-Host "Endpoint inaccessible : $($_.Exception.Message)" -ForegroundColor Red
}
Vérifier le certificat SSL du serveur
# Vérifier le certificat SSL du endpoint du bot
$hostname = "votre-bot.azurewebsites.net"
$port = 443
$tcpClient = New-Object System.Net.Sockets.TcpClient($hostname, $port)
$sslStream = New-Object System.Net.Security.SslStream($tcpClient.GetStream())
$sslStream.AuthenticateAsClient($hostname)
$cert = $sslStream.RemoteCertificate
Write-Host "Certificat valable jusqu'au : $($cert.GetExpirationDateString())"
Write-Host "Sujet : $($cert.Subject)"
$sslStream.Close()
$tcpClient.Close()
Étape 4 : Vérifier les permissions de l’application Teams
Dans le Centre d’administration Teams
- Connectez-vous à admin.teams.microsoft.com
- Naviguez vers “Applications Teams” > “Gérer les applications”
- Recherchez votre bot
- Vérifiez le statut : Autorisé ou Bloqué
Un administrateur peut involontairement bloquer une application lors d’une révision de la politique des applications Teams.
Vérifier les politiques d’autorisation des applications
Connect-MicrosoftTeams
# Lister les politiques d'autorisation d'applications
Get-CsTeamsAppPermissionPolicy
# Vérifier quelle politique est assignée à vos utilisateurs
Get-CsUserPolicyAssignment -Identity "[email protected]" -PolicyType TeamsAppPermissionPolicy
Étape 5 : Consulter les logs du bot
Logs Azure App Service (si hébergé sur Azure)
# Via Azure CLI — récupérer les logs récents
az webapp log tail --name nom-de-votre-app --resource-group votre-resource-group
# Télécharger les logs d'application
az webapp log download --name nom-de-votre-app --resource-group votre-resource-group --log-file logs.zip
Logs Bot Framework
Dans le portail Azure > votre ressource Azure Bot > “Test dans Web Chat” : tentez d’envoyer un message directement. Si le bot répond dans le Web Chat mais pas dans Teams, le problème est du côté du canal Teams. Si le bot ne répond pas non plus dans le Web Chat, le problème est dans le code ou la configuration du bot lui-même.
Étape 6 : Re-publier le canal Teams si nécessaire
Parfois, le canal Teams d’un bot se déconnecte sans raison apparente, notamment après des changements de configuration :
- Portail Azure > Azure Bot > “Canaux”
- Cliquez sur le canal Microsoft Teams
- Cliquez sur “Supprimer” pour retirer le canal
- Attendez 1 minute
- Recliquez sur “Microsoft Teams” pour ré-ajouter le canal
- Acceptez les conditions d’utilisation
Bonnes pratiques pour éviter les récidives
- Alertes d’expiration des secrets : configurez des alertes dans Azure Monitor 90 jours avant l’expiration des secrets clients
- Utiliser Azure Key Vault pour stocker les secrets — simplifier la rotation sans redéploiement du code
- Surveiller la santé du bot avec Azure Application Insights
- Documenter les dates d’expiration de tous les certificats et secrets dans un registre interne
# Script de monitoring hebdomadaire des secrets proches de l'expiration
# À planifier dans Azure Automation ou GitHub Actions
Connect-MgGraph -Scopes "Application.Read.All"
$alertDays = 60
Get-MgApplication -All | ForEach-Object {
$app = $_
$app.PasswordCredentials | Where-Object {$_.EndDateTime -lt (Get-Date).AddDays($alertDays)} | ForEach-Object {
[PSCustomObject]@{
Application = $app.DisplayName
SecretName = $_.DisplayName
ExpiresOn = $_.EndDateTime
DaysLeft = ($_.EndDateTime - (Get-Date)).Days
}
}
} | Sort-Object DaysLeft | Format-Table -AutoSize
Faites-nous savoir quelle cause a finalement été identifiée pour votre bot — cela pourra aider d’autres membres de la communauté qui rencontrent le même problème.
Ayi NEDJIMI — Consultant IT & Microsoft 365 / Teams
Pour le diagnostic et la maintenance de vos bots et applications Teams : ayinedjimi-consultants.fr