User-Facing Error Messages
This document lists all error messages that users may encounter when using the application. All error messages are sanitized to ensure sensitive information (file paths, stack traces, internal details) is never exposed to users.
Note for Developers: Full error details with stack traces are always logged server-side for debugging purposes. Users only see the sanitized messages listed below.
Backend Error Messages
These messages are generated by the backend error handler (backend/routes/error_handlers.py) and returned in API responses.
1. The run ID you provided is not valid. Please check and try again.
When it occurs: Invalid or malformed run ID provided in requests.
Tests:
test_error_handlers.py::test_invalid_id_exceptiontest_pipeline_runner_errors.py::test_invalid_run_id_empty_stringtest_pipeline_runner_errors.py::test_invalid_run_id_malformedtest_pipeline_routes.py::test_get_run_files_invalid_run_id_sanitizedtest_merfish_route.py::test_merfish_route_invalid_run_idtest_merfish_route.py::test_merfish_route_propagates_pipeline_runner_errorstest_seqfish_route.py::test_seqfish_route_invalid_run_idtest_seqfish_route.py::test_seqfish_route_propagates_pipeline_runner_errorstest_oligoseq_route.py::test_oligoseq_route_invalid_run_idtest_oligoseq_route.py::test_oligoseq_route_propagates_pipeline_runner_errorstest_scrinshot_route.py::test_scrinshot_route_invalid_run_idtest_scrinshot_route.py::test_scrinshot_route_propagates_pipeline_runner_errors
2. Your session has expired. Please refresh the page and try again.
When it occurs: Anonymous user session ID is missing or invalid.
Tests:
test_error_handlers.py::test_value_error_sessiontest_pipeline_runner_errors.py::test_missing_session_id
3. Unable to access your data directory. Please try again or contact support.
When it occurs: User data directory doesn’t exist or cannot be accessed.
Tests:
test_error_handlers.py::test_value_error_directorytest_error_handlers.py::test_runtime_error_directorytest_pipeline_runner_errors.py::test_missing_user_directory
4. The information you provided is not valid. Please check your input and try again.
When it occurs: Invalid form data or missing required fields.
Tests:
test_error_handlers.py::test_value_error_generictest_genomic_routes.py::test_genomic_cascaded_ncbi_invalid_inputtest_genomic_routes.py::test_genomic_cascaded_ensembl_invalid_inputtest_genomic_routes.py::test_genomic_cascaded_custom_invalid_input
5. The pipeline failed to execute. Please check your input and try again.
When it occurs: Pipeline subprocess execution fails.
Tests:
test_error_handlers.py::test_runtime_error_pipelinetest_pipeline_runner_errors.py::test_subprocess_failuretest_genomic_routes.py::test_genomic_cascaded_ncbi_subprocess_failuretest_genomic_routes.py::test_genomic_cascaded_ensembl_subprocess_failuretest_genomic_routes.py::test_genomic_cascaded_custom_subprocess_failure
6. An error occurred while running the pipeline. Please try again.
When it occurs: Generic runtime error during pipeline execution.
Tests:
test_error_handlers.py::test_runtime_error_generic
7. A required file is missing. Please check your input files and try again.
When it occurs: Required file doesn’t exist or cannot be found.
Tests:
test_error_handlers.py::test_file_not_found_errortest_pipeline_routes.py::test_get_run_file_not_found_sanitized
8. Something went wrong while accessing files. Please try again or contact support if the problem persists.
When it occurs: File permission errors (internal server issue).
Tests:
test_error_handlers.py::test_permission_errortest_pipeline_routes.py::test_get_run_file_permission_error_sanitizedtest_pipeline_runner_errors.py::test_temp_file_creation_error
9. Some required information is missing. Please check your input and try again.
When it occurs: Missing required configuration parameter.
Tests:
test_error_handlers.py::test_key_error
10. Something went wrong. Please try again or contact support if the problem persists.
When it occurs: Generic server errors or errors containing sensitive patterns.
Tests:
test_error_handlers.py::test_generic_exceptiontest_error_handlers.py::test_sensitive_patterns_sanitizedtest_error_handlers.py::test_long_error_message_truncatedtest_pipeline_runner_errors.py::test_config_generation_errortest_pipeline_runner_errors.py::test_catch_all_exception_handler
11. The run you’re looking for doesn’t exist or you don’t have permission to access it.
When it occurs: Run doesn’t exist in database or user doesn’t have access.
Tests:
test_pipeline_routes.py::test_get_pipeline_run_error_message_display(indirectly)
12. Unauthorized
When it occurs: User doesn’t have permission to access the resource.
Tests: (Covered by route logic, not explicitly tested)
13. We couldn’t process your genomic data. Please check your input and try again.
When it occurs: Error in genomic route processing (wrapper message).
Tests:
test_genomic_routes.py::test_genomic_cascaded_ncbi_invalid_inputtest_genomic_routes.py::test_genomic_cascaded_ncbi_subprocess_failuretest_genomic_routes.py::test_genomic_cascaded_ensembl_invalid_inputtest_genomic_routes.py::test_genomic_cascaded_ensembl_subprocess_failuretest_genomic_routes.py::test_genomic_cascaded_custom_invalid_inputtest_genomic_routes.py::test_genomic_cascaded_custom_subprocess_failuretest_genomic_routes.py::test_genomic_routes_no_str_e_exposed
Frontend Fallback Messages
These messages are generated by the frontend error handler (src/components/errorHandler.ts) when the backend doesn’t provide a specific error message.
14. Unable to connect to our servers. Please check your internet connection and try again.
When it occurs: Network error - no response from server.
Tests: (Frontend tests would verify this)
15. The information you provided is not valid. Please check your input and try again.
When it occurs: HTTP 400 status code without specific error message.
Tests: (Frontend tests would verify this)
16. You don’t have permission to perform this action. Please sign in or contact support.
When it occurs: HTTP 401 or 403 status code.
Tests: (Frontend tests would verify this)
17. The page or resource you’re looking for doesn’t exist.
When it occurs: HTTP 404 status code without specific error message.
Tests: (Frontend tests would verify this)
18. Something went wrong on our end. Please try again in a few moments.
When it occurs: HTTP 500 status code without specific error message.
Tests: (Frontend tests would verify this)
19. Our servers are experiencing issues. Please try again later.
When it occurs: HTTP 5xx status code (server errors).
Tests: (Frontend tests would verify this)
20. We couldn’t submit your pipeline. Please check your input and try again.
When it occurs: Unknown error during pipeline submission.
Tests: (Frontend tests would verify this)
21. Something went wrong while running the pipeline. Please try again.
When it occurs: Unknown error during pipeline execution.
Tests: (Frontend tests would verify this)
Where Users See Error Messages
Pipeline Submission Errors
Shown in modal dialogs after clicking “Submit” on pipeline forms:
- Merfish, Seqfish, OligoSeq, Scrinshot pipeline pages
- Genomic Region Generator
Run Detail Page Errors
Shown in the run detail page (/runs/{runId}) in the log content area:
- Displayed as:
"Pipeline Error: {error_message}" - Appears when run status is “error” or “failed”
Runs List Page Errors
Shown in the runs list page (/runs) below status badges:
- Red text displayed below “error” or “failed” status badges
- Shows the sanitized error message from the database
Security Guarantees
All error messages are guaranteed to:
- ✅ Never expose file paths (e.g.,
/user_data/,/tmp/) - ✅ Never expose stack traces (e.g., “Traceback”, “stack trace”)
- ✅ Never expose internal details (e.g., database connection strings, internal IDs)
- ✅ Always be user-friendly (actionable, descriptive messages)
- ✅ Always log full details server-side (for debugging)
For Developers
Full error details are logged server-side using Flask’s logger with exc_info=True, which includes:
- Exception type and message
- Complete stack trace
- Error context (submission vs. run)