Skip to main content
Version: 1.x

Error Code Reference

Every Praman error carries a machine-readable code field on the error object. This page maps each of the 78 ERR_* codes to its meaning and troubleshooting steps.

For the broader error system (hierarchy, properties, serialization), see Error Reference. For step-by-step diagnostics, see Troubleshooting.

Codes follow the pattern ERR_<CATEGORY>_<REASON>.


Config Errors

Configuration is validated at startup. These errors indicate a problem with your pramanConfig block in playwright.config.ts.

CodeMeaningFix
ERR_CONFIG_INVALIDZod schema validation failed — a required field is missing or a value is the wrong typeCompare your config against the Configuration guide; look at error.details for the specific Zod issue
ERR_CONFIG_NOT_FOUNDPraman could not locate a config file at the expected pathEnsure pramanConfig is exported from playwright.config.ts or that a config file path resolves correctly
ERR_CONFIG_PARSEConfig file exists but could not be parsed (JSON/TS syntax error)Open the config file and fix any syntax errors; run tsc --noEmit to surface TypeScript issues

Bridge Errors

The bridge injects a script into the SAP page to expose UI5 internals to Playwright. These errors occur when that injection or communication fails.

CodeMeaningFix
ERR_BRIDGE_TIMEOUTBridge injection did not complete within the configured timeoutIncrease bridgeTimeout; check network speed and whether the SAP page is loading slowly
ERR_BRIDGE_INJECTIONBridge script failed to inject into the page (CSP or frame mismatch)Check Content-Security-Policy headers; verify you are targeting the correct frame
ERR_BRIDGE_NOT_READYBridge injected but UI5 has not finished bootstrappingCall waitForUI5Stable() before interacting; ensure the app's bootstrap script has loaded
ERR_BRIDGE_VERSIONThe running UI5 version is below the minimum supported versionPraman requires UI5 1.71+; check the UI5 version of your target app
ERR_BRIDGE_EXECUTIONA bridge script call threw an exception in the browser contextInspect error.details.scriptError; often a UI5 API was called on a destroyed control

Control Errors

These errors occur when Praman locates, reads, or interacts with a UI5 control.

CodeMeaningFix
ERR_CONTROL_NOT_FOUNDNo control matched the given selector within the timeoutVerify the control ID or type exists in the current view; try waitForUI5Stable() first; use controlType + properties instead of a bare ID
ERR_CONTROL_NOT_VISIBLEControl was found in the UI5 registry but its DOM element is not visibleCheck if the control is inside a hidden panel or not yet rendered; wait for the parent container to become visible
ERR_CONTROL_NOT_ENABLEDControl is visible but its enabled property is falseYour test may be running before business logic enables the control; assert a prerequisite state first
ERR_CONTROL_NOT_INTERACTABLEControl exists and is visible but cannot receive user interactionsCheck for overlapping elements or a loading spinner; use searchOpenDialogs: true if the control is in a dialog
ERR_CONTROL_NOT_UI5The DOM element found is not a managed SAP UI5 controlUse Playwright native locators for non-UI5 elements (plain HTML inputs, custom web components)
ERR_CONTROL_PROPERTYReading or writing a UI5 control property failedVerify the property name via UI5 API docs; check if the property is read-only at runtime
ERR_CONTROL_AGGREGATIONAccessing a UI5 control aggregation (e.g., items) failedEnsure the aggregation is bound and the model data has loaded; check error.details.aggregationName
ERR_CONTROL_METHODInvoking a method on the UI5 control failed or the method is on the denylistOnly call UI5 public API methods; check the denylist in PramanConfig.methodDenyList
ERR_CONTROL_INTERACTION_FAILEDA click, type, or select operation on the control failed mid-executionRetry the test; if consistent, check for race conditions between animations and interactions
ERR_CONTROL_NO_DOM_REFThe UI5 control has no rendered DOM referenceThe control may not be rendered yet; call waitForUI5Stable() and verify the control is in the active view

Auth Errors

These errors occur during the authentication phase (typically in globalSetup / auth.setup.ts).

CodeMeaningFix
ERR_AUTH_FAILEDAuthentication was rejected — wrong credentials or invalid SSO tokenCheck your credentials; ensure your SAP_PASSWORD / SAP_USER env vars are set correctly
ERR_AUTH_TIMEOUTThe login page did not respond or complete within the configured timeoutIncrease authTimeout in config; check network connectivity to the SAP system
ERR_AUTH_SESSION_EXPIREDThe stored authentication session has expired (default session: 30 min)Re-run globalSetup to refresh the session; reduce test suite parallelism if sessions expire too quickly
ERR_AUTH_STRATEGY_INVALIDThe authStrategy value in config is unknown or misconfiguredValid strategies: form, saml, basic, oauth; see Authentication guide

These errors occur when navigating within the SAP Fiori Launchpad or via hash routes.

CodeMeaningFix
ERR_NAV_TILE_NOT_FOUNDAn FLP tile with the given title could not be foundVerify the tile title matches exactly (case-sensitive); check the user's role-based access
ERR_NAV_ROUTE_FAILEDHash-based navigation did not resolve to the expected appCheck the intent hash; ensure the app is deployed and the user has the required catalog entry
ERR_NAV_TIMEOUTNavigation did not complete within the configured timeoutIncrease navigationTimeout; check for slow network or heavy app initialization

OData Errors

These errors occur when Praman makes OData service calls (e.g., for data seeding or validation).

CodeMeaningFix
ERR_ODATA_REQUEST_FAILEDThe HTTP request to the OData service returned a non-2xx statusInspect error.details.status and error.details.body; check service availability and user authorization
ERR_ODATA_PARSEThe OData response body could not be parsed as valid JSON/XMLThe service may be returning an error page (HTML) instead of data; check the raw response
ERR_ODATA_CSRFCSRF token fetch or re-use validation failedThe session may have expired; ensure the CSRF fetch HEAD request succeeds before mutating requests
ERR_ODATA_TRACEOData trace/logging request failedOnly relevant when odataTrace: true; check if the sap-statistics header is supported by the backend

Selector Errors

These errors occur when parsing or resolving a Praman selector object.

CodeMeaningFix
ERR_SELECTOR_INVALIDThe selector object is malformed — missing required fields or wrong typesEnsure you pass at least one of id, controlType, or properties; see Selectors guide
ERR_SELECTOR_AMBIGUOUSMultiple UI5 controls matched the selectorAdd more specific properties to narrow the match; use index to pick a specific instance
ERR_SELECTOR_PARSEA selector string (e.g., from a shorthand) could not be parsedCheck the selector string syntax; prefer object selectors over string shorthands

Timeout Errors

These errors surface when a wait condition exceeds the configured duration.

CodeMeaningFix
ERR_TIMEOUT_UI5_STABLEwaitForUI5Stable() timed out — UI5 did not reach a stable stateIncrease ui5StabilityTimeout; check for pending XHR/OData requests that never resolve
ERR_TIMEOUT_CONTROL_DISCOVERYControl discovery loop timed out before finding the target controlIncrease controlDiscoveryTimeout; verify the control is actually rendered in the current view
ERR_TIMEOUT_OPERATIONA generic Praman operation exceeded its configured timeoutInspect error.details.operation to identify which step timed out; increase the relevant timeout config

AI Errors

These errors occur in the AI-assisted test layer (requires playwright-praman/ai).

CodeMeaningFix
ERR_AI_PROVIDER_UNAVAILABLEThe configured LLM provider endpoint is not reachableCheck network connectivity to the provider; verify API base URL in aiConfig.provider
ERR_AI_RESPONSE_INVALIDThe LLM returned a response that does not match the expected schemaThe provider may have changed its output format; check for model version changes
ERR_AI_TOKEN_LIMITThe prompt exceeded the model's context window limitReduce the page context sent to the model; use contextStrategy: 'minimal' in AI config
ERR_AI_RATE_LIMITEDThe LLM provider rejected the request due to rate limitingBack off and retry; reduce test parallelism when using AI-assisted steps
ERR_AI_NOT_CONFIGUREDAI features were called but no AI provider is configuredAdd an aiConfig block to your Praman config with a valid provider and API key
ERR_AI_LLM_CALL_FAILEDThe LLM API call itself failed (network error, 5xx response)Retry the test; check provider status page; inspect error.details.cause for the underlying error
ERR_AI_RESPONSE_PARSE_FAILEDThe LLM response body could not be parsed into the expected structureEnable aiConfig.debugResponses: true to log raw LLM output for inspection
ERR_AI_CONTEXT_BUILD_FAILEDBuilding the page context payload for the LLM failedThe page may not have loaded correctly; ensure waitForUI5Stable() is called before AI steps
ERR_AI_STEP_INTERPRET_FAILEDThe AI could not interpret a natural-language step into a concrete actionRephrase the step description; add domain vocabulary via vocabularyPath
ERR_AI_INVALID_REQUESTThe AI request object is malformed or missing required fieldsCheck the performIntent() or aiStep() call arguments
ERR_AI_CAPABILITY_NOT_FOUNDThe requested capability is not registered in the capabilities registryEnsure the capability name matches an entry in capabilities.yaml

Plugin Errors

These errors occur when loading or initializing a Praman plugin.

CodeMeaningFix
ERR_PLUGIN_LOADThe plugin module could not be resolved or importedCheck the plugin path in plugins[] config; ensure the package is installed
ERR_PLUGIN_INITThe plugin's init() hook threw an errorCheck the plugin's own error message in error.details.cause; see the plugin's documentation
ERR_PLUGIN_INCOMPATIBLEThe plugin declares an incompatible pramanVersion rangeUpdate the plugin or downgrade Praman to a compatible version; check the plugin's peerDependencies
ERR_PLUGIN_EXTENSION_DUPLICATETwo plugins register the same extension point keyRename one extension or remove the duplicate plugin
ERR_PLUGIN_EXTENSION_INVALIDA plugin extension does not conform to the required interfaceCheck the plugin's extension implementation against the Praman extension API

Vocabulary Errors

These errors occur in the business vocabulary system (playwright-praman/vocabulary).

CodeMeaningFix
ERR_VOCAB_TERM_NOT_FOUNDA business term was not found in the loaded vocabularyAdd the term to your domain vocabulary JSON file; check spelling and locale
ERR_VOCAB_DOMAIN_LOAD_FAILEDThe vocabulary domain JSON file failed to loadCheck the vocabularyPath in config; ensure the file exists and is readable
ERR_VOCAB_JSON_INVALIDThe domain vocabulary JSON file is malformedValidate the JSON syntax; compare against the vocabulary schema in the documentation
ERR_VOCAB_AMBIGUOUS_MATCHMultiple vocabulary terms matched with similar confidence scoresMake the term more specific; use the full canonical term name from your vocabulary file

Intent Errors

These errors occur in the intent/action API (playwright-praman/intents).

CodeMeaningFix
ERR_INTENT_FIELD_NOT_FOUNDA form field referenced by an intent was not found on the pageVerify the field name maps to an actual UI5 control; check the field's vocabulary mapping
ERR_INTENT_ACTION_FAILEDThe intent action (fill, select, submit) could not be completedInspect error.details for the underlying cause; often a ERR_CONTROL_* error wrapped inside
ERR_INTENT_NAVIGATION_FAILEDIntent-driven navigation to an app or tile failedCheck that the target app is accessible for the test user; see Navigation Errors above
ERR_INTENT_VALIDATION_FAILEDIntent input validation rejected a provided valueCheck that the value matches the field's type and any business rule constraints

FLP Errors

These errors occur when interacting with the SAP Fiori Launchpad shell.

CodeMeaningFix
ERR_FLP_SHELL_NOT_FOUNDThe FLP shell container element was not found in the DOMEnsure you have navigated to the FLP URL before calling FLP APIs; check the base URL config
ERR_FLP_PERMISSION_DENIEDThe test user does not have permission for the requested FLP operationAssign the correct role/catalog to the test user in the SAP system
ERR_FLP_API_UNAVAILABLEThe FLP UShell JavaScript API is not available on the pageThe app may not be running inside the FLP container; check the URL and app embedding
ERR_FLP_INVALID_USERThe FLP user context is invalid or missingRe-authenticate; check that globalSetup ran successfully and the stored session is valid
ERR_FLP_OPERATION_TIMEOUTAn FLP operation (tile click, app launch) timed outIncrease flpTimeout in config; check for slow system response or heavy tile loading

Matcher Errors

These errors occur when registering or using custom Playwright matchers added by Praman.

CodeMeaningFix
ERR_MATCHER_DUPLICATEA custom matcher with the same name was registered twiceRemove the duplicate extendMatchers() call; each matcher name must be unique
ERR_MATCHER_INVALIDThe matcher definition is missing required fields (e.g., no pass function)Check the matcher object passed to extendMatchers(); see Custom Matchers guide
ERR_MATCHER_FROZENAttempting to register a matcher after the registry has been lockedCall extendMatchers() before test execution begins, in globalSetup or at the fixture level

Browser Bind Errors

These errors occur in the browser binding layer used by Playwright's exposeFunction integration.

CodeMeaningFix
ERR_BIND_NOT_SUPPORTEDThe requested browser binding is not supported in the current contextSome bindings require a specific Playwright context type; check the bridge adapter documentation
ERR_BIND_FAILEDRegistering the browser binding via exposeFunction failedEnsure the binding is registered before page navigation; check for name conflicts with existing bindings

Screencast Errors

These errors occur in the screencast/video chapter recording feature.

CodeMeaningFix
ERR_SCREENCAST_NOT_STARTEDA screencast chapter was marked without an active screencast sessionEnsure screencast: true is set in your Playwright context options and Praman is configured to use it
ERR_SCREENCAST_CHAPTER_FAILEDAdding a chapter marker to the screencast failedCheck that the screencast session is still active; inspect error.details.cause for the underlying error
ERR_SCREENCAST_FRAME_HANDLERThe screencast frame handler threw an error during captureLikely a transient issue; retry the test; if persistent, disable screencast to isolate the problem

Compatibility Errors

These errors occur when a Playwright feature is required but not available in the installed Playwright version.

CodeMeaningFix
ERR_COMPAT_FEATURE_UNAVAILABLEA required Playwright API is not available in the current versionUpgrade Playwright to the minimum version that supports this feature; check the playwright-praman changelog for version requirements

Telemetry Errors

These errors occur in the optional OpenTelemetry integration (playwright-praman/reporters).

CodeMeaningFix
ERR_TELEMETRY_INIT_FAILEDThe OpenTelemetry SDK failed to initializeCheck your OTLP endpoint URL and credentials; ensure the @opentelemetry/* peer deps are installed
ERR_TELEMETRY_PEER_DEP_MISSINGA required OpenTelemetry peer dependency is not installedRun npm install @opentelemetry/sdk-node @opentelemetry/exporter-otlp-grpc (or the relevant packages)
ERR_TELEMETRY_EXPORTER_FAILEDThe OTLP exporter could not send spans/metrics to the collectorCheck network connectivity to the collector; verify the endpoint and authentication headers
ERR_TELEMETRY_SHUTDOWN_FAILEDThe telemetry SDK did not shut down cleanly at end of test runUsually benign; if consistent, call sdk.shutdown() explicitly in globalTeardown
ERR_TELEMETRY_METRICS_INIT_FAILEDThe metrics pipeline (MeterProvider) failed to initializeCheck your metrics exporter config; ensure metricsInterval is a positive integer

See Also