Teams Recording Troubleshooting
This guide helps you diagnose and resolve common issues with Microsoft Teams recording in Aiphoria Focus.
π Quick Diagnosticsβ
Is Recording Working?β
Check these indicators:
- β Recording bot joins Teams calls automatically
- β Users see the bot participant in their call roster
- β Recordings appear in Focus portal within 10-15 minutes
- β Transcripts are generated successfully
If any of these are failing, follow the relevant troubleshooting section below.
Common Issuesβ
π« Recording Bot Not Joining Callsβ
Symptoms:
- Bot doesn't appear in Teams calls
- No recordings appearing in Focus
- Users don't see the bot participant
Possible Causes & Solutions:
1. User Not in Recording Groupβ
Check: Is the user added to the security group created during setup?
Solution:
1. Open Azure Entra ID (formerly Azure AD)
2. Navigate to Groups
3. Find your recording group (e.g., "FocusRecordedUsers")
4. Check if the user is a member
5. Add user if missing
6. Wait 15 minutes (unless you have a large estate) for policy propagation
Teams policies can take up to 24 hours to apply to users after group membership changes. For immediate testing, try removing and re-adding the user to the group.
2. Policy Not Assigned to Userβ
Check: Verify the compliance recording policy is assigned
PowerShell Command:
Connect-MicrosoftTeams
Get-CsOnlineUser -Identity "user@domain.com" | Select-Object TeamsComplianceRecordingPolicy
Expected Output: Should show your policy name (e.g., "YourCompanyComplianceRecordingPolicy")
Solution if Blank:
# Check group policy assignment
Get-CsGroupPolicyAssignment -PolicyType TeamsComplianceRecordingPolicy
# If missing, re-run the setup script or manually assign:
New-CsGroupPolicyAssignment -GroupId "your-group-id" -PolicyType TeamsComplianceRecordingPolicy -PolicyName "YourPolicyName" -Rank 1
3. Bot Application Not Properly Syncedβ
Check: Verify bot application instance is synced
PowerShell Command:
Connect-MicrosoftTeams
Get-CsOnlineApplicationInstance | Where-Object {$_.DisplayName -like "*Focus*" -or $_.DisplayName -like "*Recording*"}
Solution:
# Re-sync the bot (replace with your bot's ObjectId)
Sync-CsOnlineApplicationInstance -ObjectId "your-bot-object-id"
4. Admin Consent Not Completedβ
Check: Verify the recording bot app has admin consent
Solution:
- Go to Azure Portal > Entra ID > Enterprise Applications
- Search for "Focus" or your bot name
- Check if the application exists
- If missing, re-do admin consent from setup script
β οΈ Bot Joins But Recording Failsβ
Symptoms:
- Bot appears in call
- No recording saved to Focus
- Recording shows as failed in Focus
Possible Causes & Solutions:
1. Network/Firewall Issuesβ
Check: Ensure required URLs and ports are accessible
Required Endpoints:
*.aiphoria.net (HTTPS/443)
*.workflow.aiphoria.net (HTTPS/443)
*.microsoft.com (HTTPS/443)
*.teams.microsoft.com (HTTPS/443)
Solution: Work with your IT team to whitelist these domains
2. Bot Service Configuration Errorβ
Check: Verify bot is correctly linked to policy
PowerShell Command:
Connect-MicrosoftTeams
Get-CsTeamsComplianceRecordingPolicy -Identity "Tag:YourPolicyName" | Select-Object -ExpandProperty ComplianceRecordingApplications
Expected: Should show your bot's ObjectId
Solution if Missing:
# Link bot to policy (replace with your values)
New-CsTeamsComplianceRecordingApplication -Parent "Tag:YourPolicyName" -Id "your-bot-object-id"
3. Focus Tenant Configuration Issueβ
Solution: Contact Aiphoria Support with:
- Your tenant ID
- Time of failed recording
- User who attempted the call
- Any error messages from Focus portal
π Recordings Delayed or Missingβ
Symptoms:
- Bot joins successfully
- Recording doesn't appear in Focus for 30+ minutes
- Some recordings never appear
Possible Causes & Solutions:
1. Processing Queue Backlogβ
Normal Processing Time: 5-15 minutes after call ends
If Delayed:
- Check Focus portal status page
- Contact support if delays exceed 1 hour
2. Recording Format/Codec Issuesβ
Check: Call was recorded in supported format
Supported:
- Standard Teams audio/video calls
- Teams meetings
- 1:1 and group calls
Not Supported:
- PSTN calls (may require additional licensing)
- Some third-party call integrations
3. Call Duration Too Shortβ
Minimum Duration: Calls under 30 seconds may not be recorded
Solution: Ensure calls last at least 1 minute for reliable recording
π Permission & Access Issuesβ
Symptoms:
- Setup script fails
- Cannot create bot or policy
- "Insufficient permissions" errors
Required Permissions:
For Setup Script:β
- Global Administrator OR
- Teams Administrator + Groups Administrator + Cloud Application Administrator
PowerShell Command to Check Roles:
Connect-MgGraph
Get-MgUserMemberOf -UserId "your-admin@domain.com" | Select-Object AdditionalProperties
Solution:
- Verify you have required roles in Azure Entra ID
- Re-run setup script with appropriate admin account
- Use Global Admin if role-based approach fails
π PowerShell Script Issuesβ
Symptoms:
- Script fails to connect
- Module import errors
- Authentication loops
Module Version Conflictsβ
Solution:
# Uninstall all versions
Get-Module -ListAvailable Microsoft.Graph.* | Uninstall-Module -Force
Get-Module -ListAvailable MicrosoftTeams | Uninstall-Module -Force
# Reinstall latest versions
Install-Module Microsoft.Graph -Force -AllowClobber
Install-Module MicrosoftTeams -Force -AllowClobber
# Restart PowerShell and re-run setup script
WAM Authentication Issuesβ
Symptoms: Stuck at "Sign in to your account" window
Solution:
# The script already sets this, but you can manually set:
$env:AZURE_IDENTITY_DISABLE_CP1 = "true"
# Then re-run authentication
Connect-MicrosoftTeams
Execution Policy Errorsβ
Error: "Running scripts is disabled on this system"
Solution:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
π§ Verification Commandsβ
Check Complete Configurationβ
Run these commands to verify your full setup:
# Connect to services
Connect-MicrosoftTeams
Connect-MgGraph -Scopes "Group.Read.All","Organization.Read.All"
# 1. Check bot exists and is synced
$bot = Get-CsOnlineApplicationInstance | Where-Object {$_.DisplayName -like "*Focus*"}
Write-Host "Bot UPN: $($bot.UserPrincipalName)"
Write-Host "Bot ObjectId: $($bot.ObjectId)"
Write-Host "Bot ApplicationId: $($bot.ApplicationId)"
# 2. Check policy exists
$policy = Get-CsTeamsComplianceRecordingPolicy | Where-Object {$_.Identity -like "*Focus*" -or $_.Identity -like "*Compliance*"}
Write-Host "`nPolicy: $($policy.Identity)"
Write-Host "Enabled: $($policy.Enabled)"
# 3. Check bot is linked to policy
$policyApps = Get-CsTeamsComplianceRecordingPolicy -Identity $policy.Identity | Select-Object -ExpandProperty ComplianceRecordingApplications
Write-Host "`nLinked Bots: $($policyApps.Id)"
# 4. Check group exists
$group = Get-MgGroup -Filter "displayName eq 'FocusRecordedUsers'"
Write-Host "`nGroup: $($group.DisplayName)"
Write-Host "Group ID: $($group.Id)"
# 5. Check group members
$members = Get-MgGroupMember -GroupId $group.Id
Write-Host "Member Count: $($members.Count)"
# 6. Check policy assignment to group
$groupPolicy = Get-CsGroupPolicyAssignment -PolicyType TeamsComplianceRecordingPolicy | Where-Object {$_.GroupId -eq $group.Id}
Write-Host "`nGroup Policy Assignment: $($groupPolicy.PolicyName)"
Write-Host "Rank: $($groupPolicy.Rank)"
# 7. Check a specific user's policy (replace with actual user)
$userPolicy = Get-CsOnlineUser -Identity "user@domain.com" | Select-Object TeamsComplianceRecordingPolicy
Write-Host "`nUser Policy: $($userPolicy.TeamsComplianceRecordingPolicy)"
π Diagnostic Checklistβ
Use this checklist to systematically diagnose issues:
- Bot Created: Application instance exists in tenant
- Bot Synced: Bot ApplicationId is correct and synced
- Policy Created: Compliance recording policy exists
- Bot Linked: Bot is linked to policy
- Flags Set: Convenience recording flags configured (optional)
- Group Created: Security group exists
- Group Assigned: Group assigned to policy
- Users Added: Target users are members of group
- Admin Consent: Bot app has admin consent granted
- Entra Sync: Entra sync app has admin consent granted
- Network Access: Required URLs accessible from network
- User Policy: User shows correct policy when checked
- Policy Propagated: 24+ hours passed since group membership changed
π¨ When to Contact Supportβ
Contact Aiphoria Support if:
- You've followed all troubleshooting steps and issue persists
- You see error codes in the Focus portal
- Setup script fails with unclear errors
- Recordings worked previously but stopped
- You need help with complex multi-tenant scenarios
Information to Provide:
- Tenant ID and domain
- Bot ObjectId and ApplicationId
- Policy name
- Affected user(s)
- Timeline of when issue started
- Screenshots of any errors
- Results from verification commands above
Contact Support:
Still suck, got a question, we are always happy to help:
- Portal: Support Documentation