Error Codes Reference
Every RowOps error includes a stable error code for programmatic handling and a human-readable message. This reference documents all error codes, what causes them, and how to resolve them.
Error Code Format
Errors are returned as structured objects:
{
code: "ROW_LIMIT_EXCEEDED", // Stable code for programmatic handling
message: "Row limit exceeded...", // Human-readable description
category: "limit", // user | system | limit | network
details: { // Context-specific metadata
limit: 1000,
current: 1500,
tier: "free"
}
}
Parser Errors
Errors that occur when reading and parsing your file.
PARSER_ERROR
What happened: The file could not be parsed. This usually means the file is corrupted, uses an unsupported format, or has structural issues.
How to fix:
- Verify the file opens correctly in Excel or Google Sheets
- Check for special characters or encoding issues
- Re-export the file as UTF-8 CSV
- If the file is very large, try splitting it into smaller chunks
Example message: Parser error for contacts.csv: Unexpected end of input at row 1523
INVALID_FILE_FORMAT
What happened: The file type is not supported or the file extension doesn't match its contents.
How to fix:
- Verify the file is one of: CSV, XLSX, XLS, XML, JSON, or a supported format
- Check that the file extension matches the actual format
- If you renamed a file, re-export it in the correct format
Supported formats: CSV, XLSX, XLS, XML, JSON, TSV, fixed-width text
FILE_TOO_LARGE
What happened: The file exceeds the maximum size allowed for your tier.
How to fix:
- Split the file into smaller chunks
- Remove unnecessary columns before importing
- Upgrade to a higher tier for larger file limits
Tier limits:
- Free: 10MB
- Pro: 100MB
- Scale: 500MB
- Enterprise: 2GB
ENCODING_ERROR
What happened: The file uses a character encoding that couldn't be detected or processed.
How to fix:
- Open the file in a text editor and save as UTF-8
- In Excel: Save As → CSV UTF-8 (Comma delimited)
- Check for special characters that may not be valid UTF-8
Common causes: Files created on Windows with Windows-1252 encodings, files with mixed encodings, or binary content embedded in text fields.
Validation Errors
Errors that occur when validating data against your schema.
VALIDATION_ERROR
What happened: One or more rows failed schema validation. This is the general validation error; specific validation failures have their own codes below.
How to fix:
- Review the validation errors in the error panel
- Fix the data issues inline or export the error report
- Re-validate after making fixes
REQUIRED_FIELD_MISSING
What happened: A required field has no value.
How to fix:
- Add the missing value to the cell
- If the field should be optional, update your schema to set
required: false - Use the bulk fix feature to apply a default value
Example message: Required field "email" is missing at row 45
TYPE_MISMATCH
What happened: The value doesn't match the expected data type.
How to fix:
- Check that numeric fields contain only numbers
- Check that date fields use a recognized date format
- Check for accidental text in number columns (e.g., "N/A" in a quantity field)
Example message: Invalid value for "quantity": expected number, got "TBD"
Recognized date formats: ISO 8601, MM/DD/YYYY, DD/MM/YYYY, YYYY-MM-DD
REGEX_VALIDATION_FAILED
What happened: The value doesn't match the regex pattern defined in your schema.
How to fix:
- Check the value against the expected pattern
- Common issues: wrong format for phone numbers, email addresses, or custom codes
- If the pattern is too strict, update your schema regex
Example message: Value "123-456" does not match pattern "^\d{3}-\d{2}-\d{4}$" for field "ssn"
ENUM_VALIDATION_FAILED
What happened: The value is not in the list of allowed values.
How to fix:
- Check the value against the allowed options
- Check for typos or case sensitivity issues
- Update your schema to add missing allowed values if appropriate
Example message: Value "Active" not in allowed values ["active", "inactive", "pending"] for field "status"
RANGE_VALIDATION_FAILED
What happened: A numeric value is outside the allowed range.
How to fix:
- Check that the value is within the min/max bounds defined in your schema
- Look for data entry errors (e.g., extra digits)
- Update your schema range if the current limits are too restrictive
Example message: Value 150 out of range [0, 100] for field "percentage"
Schema Errors
Errors related to schema configuration or column mapping.
SCHEMA_ERROR
What happened: There's an issue with the schema definition.
How to fix:
- Check that all required fields in the schema have valid types
- Verify regex patterns are valid regular expressions
- Ensure enum values are non-empty arrays
SCHEMA_NOT_FOUND
What happened: The specified schema ID doesn't exist.
How to fix:
- Verify the
schemaIdprop matches a schema in your project - Check that you're using the correct project
- Create the schema in the dashboard if it doesn't exist
Example message: Schema "contacts" not found in project "proj_abc123"
COLUMN_MAPPING_ERROR
What happened: The column mapping configuration is invalid or a required column couldn't be mapped.
How to fix:
- Check that all required schema fields have a mapped source column
- Verify column names in your file match the expected mapping
- Use the column mapper UI to manually map ambiguous columns
Tier and Limit Errors
Errors related to plan limits and feature gates.
ROW_LIMIT_REACHED
What happened: Parsing stopped at your plan's row limit under the default
stop_with_warning policy. Remaining rows were skipped, but the partial dataset
is available.
How to fix:
- Split the file into smaller chunks within your tier limit
- Upgrade to a higher tier for more rows
Warning details include:
tier,rowLimitrowsProcessed,rowsSkipped,rowsSeenSoFarbehavior: "stop_with_warning"stage: "parse"
LIMIT_EXCEEDED
What happened: A general limit has been exceeded.
How to fix: Upgrade to a higher tier or reduce usage.
ROW_LIMIT_EXCEEDED
What happened: The import exceeded your plan's row limit and was blocked
(hard_error policy or server-side permit denial).
How to fix:
- Split the file into smaller chunks within your tier limit
- Upgrade to a higher tier for more rows
Tier limits:
- Free: 1,000 rows per import
- Pro: 100,000 rows per import
- Scale: 1,000,000 rows per import
- Enterprise: Unlimited
Example message: Row limit exceeded: 1,500 rows exceeds the free plan limit of 1,000
PROJECT_LIMIT_EXCEEDED
What happened: Your organization has reached the maximum number of projects.
How to fix:
- Delete unused projects
- Upgrade to a higher tier for more projects
Tier limits:
- Free: 1 project
- Pro: 5 projects
- Scale: 20 projects
- Enterprise: Unlimited
TIER_FEATURE_DISABLED
What happened: You're trying to use a feature not available on your current plan.
How to fix:
- Upgrade to a tier that includes this feature
- Use an alternative approach available on your current tier
Feature availability:
| Feature | Free | Pro | Scale | Enterprise |
|---|---|---|---|---|
| CSV/XLSX parsing | Yes | Yes | Yes | Yes |
| Basic validation | Yes | Yes | Yes | Yes |
| Regex validation | No | Yes | Yes | Yes |
| PII detection | No | Yes | Yes | Yes |
| Masking (null) | Yes | Yes | Yes | Yes |
| Masking (advanced) | No | Yes | Yes | Yes |
| Transform operations | Basic | Full | Full | Full |
| Fuzzy matching | No | No | Yes | Yes |
| Deduplication (Unify) | No | Yes | Yes | Yes |
| Webhooks | No | Yes | Yes | Yes |
Masking Errors
Errors that occur during PII masking.
MASKING_ERROR
What happened: A general error occurred during the masking stage.
How to fix:
- Check your mask configuration syntax
- Verify all referenced columns exist in the data
- Ensure mask strategies are valid for your tier
INVALID_MASK_STRATEGY
What happened: The specified masking strategy is not valid or not available on your tier.
How to fix:
- Use a valid strategy:
null,partial,hash,redact,replace,scramble,encrypt,custom - Check tier availability (some strategies require Pro or higher)
Strategy availability:
- Free:
nullonly - Pro:
null,partial,hash,redact,replace,scramble - Scale+: All strategies including
encrypt - Enterprise: All strategies including
custom
MASK_COLUMN_NOT_FOUND
What happened: A column specified in the mask configuration doesn't exist.
How to fix:
- Check column names for typos
- Verify the column exists in your data after any transform operations
- Update your mask configuration to reference valid columns
Network and Sync Errors
Errors that occur during data sync or network operations.
SYNC_ERROR
What happened: An error occurred while syncing data to your backend.
How to fix:
- Check that your sync endpoint is reachable
- Verify your
SyncTarget.sendBatchhandler resolves successfully - Check backend logs for errors and payload validation failures
NETWORK_ERROR
What happened: A network request failed.
How to fix:
- Check your internet connection
- Verify the endpoint URL is correct
- Check for CORS issues if running in a browser
- Retry the operation
Note: Network errors are automatically retryable. The system will retry up to 2 times with exponential backoff by default.
API_ERROR
What happened: The RowOps API returned an error.
How to fix:
- Check your API key is valid and not expired
- Verify you have permission for the operation
- Check the error message for specific guidance
TIMEOUT
What happened: An operation timed out.
How to fix:
- For large files, ensure adequate time is allowed
- Check network connectivity
- Retry the operation
- If consistently timing out, try smaller batch sizes
System Errors
Internal errors that typically require support assistance.
INTERNAL_ERROR
What happened: An unexpected internal error occurred.
How to fix:
- Refresh the page and try again
- Clear browser cache and localStorage
- Try a different browser
- If the issue persists, contact support with the error details
When contacting support, include:
- The full error message
- Browser and version
- Steps to reproduce
- The file (if not sensitive) or file characteristics
UNKNOWN
What happened: An unclassified error occurred.
How to fix:
- Check the error message for clues
- Refresh and retry
- Contact support if the issue persists
Profile Errors
Errors that occur during data profiling.
PROFILE_ERROR
What happened: Data profiling failed.
How to fix:
- Check for unusual data patterns (extremely long strings, binary data)
- Retry the import
- If profiling consistently fails, you can proceed without profiling
PROFILE_TIMEOUT
What happened: Profiling took too long and was aborted.
How to fix:
- For very large files, profiling may be skipped automatically
- This is a warning, not a blocking error import can continue
- If you need profile data, try a smaller sample of your file
License Errors
Errors related to license verification.
LICENSE_INVALID
What happened: The provided license key is not valid.
How to fix:
- Check the publishable key is copied correctly
- Verify the key hasn't been revoked in the dashboard
- Generate a new key if needed
LICENSE_EXPIRED
What happened: The license has expired.
How to fix:
- Renew your subscription
- Contact support if you believe this is an error
DOMAIN_NOT_ALLOWED
What happened: The current domain is not authorized for this publishable key.
How to fix:
- Add the domain to your project's allowed domains in the dashboard
- Verify you're using the correct publishable key for this project
- Note:
localhostis always allowed for development
How to add a domain:
- Go to Dashboard → Project → Domains
- Click "Add Domain"
- Enter your domain (e.g.,
app.yourcompany.com) - Save and wait for propagation (usually instant)
Error Categories
Errors are categorized for programmatic handling:
| Category | Description | User Action |
|---|---|---|
user | Caused by user input or data | Fix the data or configuration |
limit | Plan limits exceeded | Upgrade or reduce usage |
network | Network or connectivity issues | Retry the operation |
system | Internal system error | Contact support |
Recovery Actions
Each error has a recommended recovery action:
| Action | Description |
|---|---|
retry | Operation can be retried as-is (network errors) |
abort | Operation should be restarted after fixing the issue |
block | Operation is permanently blocked until conditions change (upgrade) |
resume | Operation can continue from a checkpoint |
Getting Help
If you encounter an error not documented here or need assistance:
- Check the error details - Expand error details for stack traces and context
- Search the docs - Many errors have specific troubleshooting guides
- Support - Contact support@rowops.dev for urgent issues
When reporting issues, always include:
- Error code and full message
- Browser/environment details
- Steps to reproduce
- File characteristics (size, format, approximate row count)