Quick Reference
Streaming and result errors
@testdino/playwright streams results as your tests run. Most failures to see a run are a token or a config problem.
Token errors
Token errors
TestDino authenticates with the
TESTDINO_TOKEN environment variable. The streaming API key comes from Project Settings → API Keys.Confirm the token is set, then run with debug output:Token is required but not provided means the variable is unset or empty. Export it, or pass -t directly.Invalid API key or unauthorized access means the token is wrong, expired, revoked, or scoped to a different project.To fix this:- Generate a fresh key and confirm it belongs to the project you are streaming to.
- In CI, store tokens as secrets, never hardcode them.
- Secret names are case-sensitive: a secret saved as
TestDino_Tokenwill not resolve asTESTDINO_TOKEN. - See API Keys for creating and scoping keys.
Runs not appearing
Runs not appearing
Tests run but no run shows in the dashboard. Work through these in order:The FAQ walks through this case in more detail under Why are my streamed runs not appearing?.
- Reporter not added. Confirm
@testdino/playwrightis in thereporterarray in your Playwright config. - Token not set. Confirm
TESTDINO_TOKENis set in the environment that runs the tests. - Wrong project. A token without access to this project streams the run elsewhere. Confirm the token matches the project you are viewing.
- Debug check. Re-run with
npx tdpw test --debugto see the exact stream target and any errors.
CI and pull request errors
These appear once tests run inside a pipeline: shards do not group into one run, or the result never links to a pull request.GitHub checks and comments
GitHub checks and comments
A pull request shows no TestDino check or comment even though the run streamed. Both depend on TestDino linking the run to a commit and the connected repository.Common causes:
- GitHub Checks is off. Enable it in the CI Checks tab. See GitHub status checks.
- Comments toggle is off. Enable comments in Settings → Integrations → GitHub.
- No commit SHA. Run tests inside CI so git context is captured automatically.
- Repository mismatch. The TestDino project must be connected to the same repo the PR lives in.
- App not installed. The GitHub App must be installed with access to the repository.
Environment label missing
Environment label missing
A run appears without an environment label and drops out of environment-filtered views. The branch matched no mapping pattern. The usual cause is a regex mistake:
- Unanchored:
devmatches any branch that contains “dev”. Anchor it:^dev/. - Too broad:
.*or.+matches every branch and overrides your specific rules. - Invalid regex: an unclosed bracket or a bad escape never matches.
Sign-in and access errors
These errors block users from signing in or performing actions within the organization. Most stem from SSO configuration issues or insufficient role permissions.SSO sign-in failures
SSO sign-in failures
SSO errors trace to a mismatch between your identity provider and the values saved in TestDino. The most common ones:
For the full setup and OIDC troubleshooting, see Single Sign-On.
Permission errors
Permission errors
Permissions are organization-level, so a blocked action usually means your role is too low, not a bug. Common cases:
- Cannot invite a member. Only Owners and Administrators can invite. The org may also be at its member limit for the plan.
- Cannot change a role. You can only assign roles at or below your own. Administrators cannot grant the Owner role or change their own role.
- Cannot delete a run or test case. Members cannot delete; Viewers are read-only.
- Cannot manage an integration. Project-level integrations (GitHub, GitLab, Slack, monday, Azure DevOps) need Owner or Administrator.
- Cannot manage billing. Only Owners and Billing Managers can change a subscription.
API errors
These come from the Public API and the MCP server, which both use thetd_pat_ Personal Access Token. Authentication, scope, and rate limits are the usual causes.
API token and scope errors
API token and scope errors
The full error table is in API conventions, and the auth setup is in the API quickstart.
API rate limits
API rate limits
A
429 RATE_LIMIT_EXCEEDED means you crossed a per-token window:Read
RateLimit-Reset from the response headers and wait that many seconds, or back off exponentially. See Rate limits for the full header reference.Integration errors
Slack and MCP each have their own connection and configuration failures. These accordions cover the top symptoms and link to the full guides.Slack alerts missing
Slack alerts missing
No TestDino messages arrive in Slack. Check the connection and channel setup:
- App not connected, or no default channel. Verify the connection in Settings → Integrations → Slack and set a default channel. Use the Test button to send a sample.
- Private channel not listed. Add the TestDino app to the channel first (channel name → Integrations → Add an App), then click Refresh in Slack settings.
- Messages in the wrong channel. Check the environment-to-channel mapping. Unmapped environments fall back to the default channel.
- Annotation alerts silent. The test needs a
testdino:notify-slackannotation with a mapped target, and annotation alerts fire only on failure.
MCP errors
MCP errors
The MCP server has its own setup, authentication, and network failures, with a dedicated page. The categories:
- Installation:
npm ERR! 404 Not Found,command not found: testdino-mcp. - Editor integration: the server does not appear in Claude Code, Cursor, or Claude Desktop.
- Authentication:
healthreturns “Invalid token” or “No projects found”. - Network:
ECONNREFUSED, timeouts, or a 429 from the server.
Plan and seat limits
When the organization reaches a plan limit, tests still run locally but TestDino stops accepting new data. Two limits apply.Execution limit reached is the monthly test-run quota, shared across all projects in your organization. New results pause until you upgrade the plan or the quota resets on your billing date.
To manage this:
- Open Billing & Usage to see how much of your monthly quota is used.
- Upgrade your plan if you consistently hit the limit, or wait for the reset date. See Billing & Usage.
User limit reached is the seat cap for new members. A new SSO sign-in is blocked when you’re at the limit. However, existing members signing in again are never blocked.
Fix: Free a seat by removing an inactive member, or upgrade your plan. See Billing & Usage to review your plan and usage.
Other setup gaps
- Commit, branch, or author blank. TestDino reads git metadata from the repository, so run tests inside an initialized git repo.
- Run tags missing from a run. Tags are never rejected, only cleaned up: TestDino keeps the first 50 tags, trims each to 100 characters, strips control characters, and drops duplicates and empty values.
- Errors on an old runtime.
@testdino/playwrightneeds Node.js 18+ and@playwright/test1.52+.
Get help
Still stuck? Collect this before contacting support, so the team can reproduce it without a back-and-forth:- The Run ID or dashboard URL of the affected run.
- The package version:
@testdino/playwrightversion from your lockfile. - The framework and runtime: Playwright version, Node.js version.
- The full error and stack trace.
- The CI logs with tokens and credentials redacted.
- The
--debugoutput fromnpx tdpw test --debug.
Related
Node.js Reporter
Upload flags, reporter config, and CLI commands for the Node.js CLI.
Generate API Keys
Create and scope the token the CLI and API use.
CI Setup Overview
Per-provider pipeline guides with sharding and artifact handling.