Common Enrollment Errors
| HTTP Status | Error | Cause | Resolution |
|---|---|---|---|
| 401 | Missing/invalid enrollment key | Key is incorrect, revoked, or missing | Verify the enrollment key in your script |
| 400 | Username too short | Username must be at least 2 characters | Check ENROLLMENT_USERNAME or device username |
| 400 | Unable to resolve username | Username matches multiple users | Use full email address in ENROLLMENT_USERNAME |
| 404 | User not found | No user exists with the provided username | Create the user in Runlayer before enrollment |
| 500 | Server error | Internal server issue | Contact Runlayer support |
Common Issues
Script not running on macOS
Script not running on macOS
Quick fixes:
- Check script permissions:
chmod +x run-mcp-watch-macos.sh - Verify the script is assigned to the correct device group in your MDM
- Check MDM console for script execution errors
- Review logs at
/var/log/mcp-watch.log
Script not running on Windows
Script not running on Windows
Quick fixes:
- Ensure PowerShell execution policy allows the script
- Run
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUserif needed - Verify the script is assigned to the correct device group in your MDM
- Review logs at
%ProgramData%\MCPWatch\mcp-watch.log
No devices appearing in dashboard
No devices appearing in dashboard
Quick fixes:
- Check script logs for errors (see Log Locations below)
- Verify the enrollment key is active and not revoked
- Confirm network connectivity from devices to your Runlayer host
- Check that the script is actually being executed by your MDM
- Verify the enrollment API endpoint is reachable from device networks
Enrollment succeeds but scan fails
Enrollment succeeds but scan fails
Quick fixes:
- Verify the user has appropriate permissions in Runlayer
- Check that
uvis properly installed and in the system PATH - Review verbose output with
uvx runlayer scan --verbose - Ensure no firewall rules are blocking the Runlayer API
Scan finds fewer MCP servers than expected (macOS)
Scan finds fewer MCP servers than expected (macOS)
Symptoms: Scan completes successfully but doesn’t find MCP servers you know exist in directories like Desktop, Documents, or Application Support.Cause: macOS TCC (Transparency, Consent, and Control) is blocking access to protected directories.Resolution:
- Deploy the PPPC profile to grant Full Disk Access to the wrapper binary
- Ensure devices are enrolled via User-Approved MDM or Automated Device Enrollment
- Verify the profile is installed:
profiles show -type configuration | grep runlayer - Verify the wrapper binary is installed and signed correctly:
- Re-run the scan after the PPPC profile is applied
LaunchAgent fails to load or trigger
LaunchAgent fails to load or trigger
Quick fixes:
- Check LaunchAgent logs:
cat /tmp/runlayer-scan.stderr.log - Verify the LaunchAgent is loaded:
launchctl list | grep runlayer - Check the main log:
cat /var/log/mcp-watch.log - Verify the wrapper binary exists and is signed:
- Test the wrapper binary:
/usr/local/bin/runlayer-scan --dry-run - Try manually triggering:
launchctl kickstart -kp gui/$(id -u)/com.runlayer.scan
'Scan process may not have started properly' warning
'Scan process may not have started properly' warning
Cause: The script detected that the LaunchAgent may not have transitioned to a running state after being triggered. This can happen due to timing issues or if the LaunchAgent failed to start.Quick fixes:
- Check if the scan actually ran by reviewing the logs:
- Verify the LaunchAgent is properly loaded:
launchctl list | grep runlayer - Check system load — high CPU usage can delay process startup
- Manually trigger the scan to test:
launchctl kickstart -kp gui/$(id -u)/com.runlayer.scan - If the issue persists, check Console.app for launchd errors related to
com.runlayer.scan
Log Locations
| Platform | Log Location |
|---|---|
| macOS | /var/log/mcp-watch.log |
| macOS LaunchAgent | /tmp/runlayer-scan.stdout.log, /tmp/runlayer-scan.stderr.log |
| Windows | %ProgramData%\MCPWatch\mcp-watch.log |
| Windows (Intune) | C:\ProgramData\Microsoft\IntuneManagementExtension\Logs |
Exit Codes
| Code | Meaning |
|---|---|
| 0 | Success |
| 1 | General failure (no user logged in, missing config, enrollment failed) |
| 2 | Network failure |
| 3 | Installation failure |
Verifying PPPC Profile Deployment (macOS)
After deploying the PPPC profile, verify it’s installed on target devices:Verifying Wrapper Binary (macOS)
Verify the wrapper binary is properly installed and signed:Identifier=com.runlayer.scan which matches the PPPC profile.
Getting Help
If you continue to experience issues:- Collect the relevant log files from the affected device
- Note the HTTP status codes and error messages
- Contact Runlayer support with the collected information