Renku Core Service Errors
Here is a list of the possible service errors, including the reference code, the user and developer messages, and a longer description of the error.
Errors are split in 3 major categories.
User generated errors
Error codes: from 1000 to 1999
This category includes all the errors generated by user input. There is no unexpected error nor bug here. The user should be able to address these issues. An example could be a wrong parameter (E.G. trying to access a non-existing repository, or a private repository without proper permissions).
Programming errors
Error codes: from 2000 to 2999
The programming errors are bugs or unexpected cases. In the first case, they should lead to creating a new GitHub issue; in the latter, it may be necessary to handle the specific error to provide the user a precise explanation.
Intermittent errors
Error codes: from 3000 to 3999
This category includes errors that may temporarily affect the user, but they don’t necessarily depend on a wrong input nor can they be classified as a bug. Repeating the same action after some time may be enough to solve the problem. An example could be a temporarily unavailable backend service (E.G. the GitLab instance) or a transient network problem.
List of available errors
Renku service exceptions.
- exception renku.ui.service.errors.ServiceError(code=None, userMessage=None, devMessage=None, userReference=None, devReference=None, exception=None)[source]
Bases:
Exception
Error handler for service errors.
Set the documentation reference for developers willing to explore the base code. Handle Sentry, adding user data (when available) and error details.
Initialize the service error.
- devReference = 'https://renku-python.readthedocs.io/en/latest/service_errors.html#renku.ui.service.errors.{class_name}'
- exception renku.ui.service.errors.UserInvalidGenericFieldsError(exception=None, wrong_values='Unknown')[source]
Bases:
ServiceError
One or more fields provided by the user has an invalid value.
This is a generic error. Where possible, it would be best to create specific errors meaningful for the users.
Initialize the service error.
- code = 1001
- userMessage = 'Some of the provided values are wrong: {wrong_values}'
- devMessage = 'Wrong values have been provided: {wrong_values}'
- exception renku.ui.service.errors.UserRepoUrlInvalidError(exception=None, error_message='Unknown')[source]
Bases:
ServiceError
The provided URL is not a valid Git repository.
This usually happens when the URL is wrong.
There are many possibilities:
The URL is wrong
The target is not a valid git repository
The user doesn’t have the required permissions to access the repository
The target may temporarily be unavailable.
Initialize the service error.
- code = 1010
- userMessage = 'A valid Git repository is not available at the target URL, or the user does not have the required permissions to access it.'
- devMessage = 'Repository not found. Git error message: {error_message}'
- exception renku.ui.service.errors.UserRepoNoAccessError(exception=None, error_message='Unknown')[source]
Bases:
ServiceError
The target repository cannot be accessed by the current user.
This is usually due to lack of permissions by the user, although in that case the repository manager usually returns a Not Found error instead.
Initialize the service error.
- code = 1011
- userMessage = 'Error accessing the repository due to lack of permissions.'
- devMessage = 'Access denied to the repository. Git error message: {error_message}'
- exception renku.ui.service.errors.UserRepoBranchInvalidError(exception=None, branch='Unknown', error_message='Unknown')[source]
Bases:
ServiceError
The provided URL is a valid Git repository, but the target branch does not exist.
This usually happens when the target branch does not exist anymore. It is possible it was there at some point and it has been removed in the meanwhile.
Initialize the service error.
- code = 1012
- userMessage = "The target URL is a valid Git repository, but we could not find the branch '{branch}'."
- devMessage = 'Branch not valid. Git error message: {error_message}'
- exception renku.ui.service.errors.UserRepoReferenceInvalidError(exception=None, branch='Unknown', error_message='Unknown')[source]
Bases:
ServiceError
The provided URL is a valid Git repository, but the target reference does not exist.
This usually happens when the target branch, tag or commit does not exist anymore. It’s possible it was there and the history has been re-written in the meanwhile, or it was never there at all.
Initialize the service error.
- code = 1013
- userMessage = "The target URL is a valid Git repository, but we could not find the reference'{reference}'. Please specify a valid tag, branch or commit"
- devMessage = 'Reference not valid. Git error message: {error_message}'
- exception renku.ui.service.errors.UserAnonymousError(exception=None)[source]
Bases:
ServiceError
The user must login in to use the target endpoint.
Initialize the service error.
- code = 1030
- userMessage = "It's necessary to be authenticated to access the target data."
- devMessage = 'User identification is incorrect or missing.'
- exception renku.ui.service.errors.UserMissingFieldError(exception=None, field='Unknown')[source]
Bases:
ServiceError
The user has not provided an expected field.
Initialize the service error.
- code = 1040
- userMessage = 'The following field is required: {field}.'
- devMessage = "User did not provide the mandatory field '{field}'."
- exception renku.ui.service.errors.UserTemplateInvalidError(exception=None, error_message='Unknown')[source]
Bases:
ServiceError
The provided URL doesn’t lead to a valid template repository.
Initialize the service error.
- code = 1101
- userMessage = 'The target repository is not a valid Renku template repository: {error_message}'
- devMessage = 'Target repository is not a valid template.: {error_message}'
- exception renku.ui.service.errors.UserProjectCreationError(exception=None, error_message='Unknown')[source]
Bases:
ServiceError
Error when creating a new project from a Renku template.
One (or more) project field is wrong.
Initialize the service error.
- code = 1102
- userMessage = 'There is an error with a project field: {error_message}.'
- devMessage = 'Project creation from a Renku template failed. The user provided wrong field(s): {error_message}.'
- exception renku.ui.service.errors.UserNonRenkuProjectError(exception=None)[source]
Bases:
ServiceError
The target repository is valid but it is not a Renku project.
Initialize the service error.
- code = 1110
- userMessage = 'The target project is not a Renku project.'
- devMessage = 'Cannot work on a non Renku project.'
- exception renku.ui.service.errors.UserProjectMetadataCorruptError(exception=None, error_message='Unknown')[source]
Bases:
ServiceError
The metadata in the project os corrupt and couldn’t be loaded.
Initialize the service error.
- code = 1120
- userMessage = "The Renku metadata in the project is corrupt and couldn't be loaded: {error_message}"
- devMessage = "Couldn't parse project metadata due to a JSON parsing error: {error_message}"
- exception renku.ui.service.errors.UserDatasetsMultipleImagesError(exception=None)[source]
Bases:
ServiceError
Multiple images dataset have the same priority.
Initialize the service error.
- code = 1130
- userMessage = 'Multiple dataset images must have different priorities.'
- devMessage = 'The input parameters contain multiple dataset images with the same priority.'
- exception renku.ui.service.errors.UserDatasetsUnreachableImageError(exception=None)[source]
Bases:
ServiceError
Dataset image not reachable.
Initialize the service error.
- code = 1131
- userMessage = 'Cannot download the dataset image.'
- devMessage = 'The remote dataset image is not reachable.'
- exception renku.ui.service.errors.UserDatasetsUnlinkError(exception=None)[source]
Bases:
ServiceError
Dataset unlink parameters not valid.
Initialize the service error.
- code = 1132
- userMessage = 'Please provide valid unlink parameter.'
- devMessage = 'Unlink parameters not valid.'
- exception renku.ui.service.errors.UserOutdatedProjectError(exception=None)[source]
Bases:
ServiceError
The operation can be done only after updating the target project.
Initialize the service error.
- code = 1140
- userMessage = 'This operation requires to update the project first.'
- devMessage = 'The requested operation can only be performed on an up-to-date project.'
- exception renku.ui.service.errors.UserNewerRenkuProjectError(exception=None, minimum_version='Unknown', current_version='Unknown')[source]
Bases:
ServiceError
The target repository is valid but it needs a newer renku version than is currently deployed.
Initialize the service error.
- code = 1141
- userMessage = 'The target project requires renku version {minimum_version}, but this deployment is on version {current_version}.'
- devMessage = 'Update the deployed core-service version to support newer projects.'
- exception renku.ui.service.errors.UserProjectTemplateReferenceError(exception)[source]
Bases:
ServiceError
The project’s template original reference cannot be found anymore.
The reference has probably been removed, either on purpose or as a side effect of a forced push.
Initialize the service error.
- code = 1141
- userMessage = "The project's template original reference has been removed or overwritten. Manually changing it in a session may fix the problem. Further details: {message}."
- devMessage = 'Template reference is not available anymore. Details: {message}.'
- exception renku.ui.service.errors.UserUploadTooLargeError(exception, maximum_size)[source]
Bases:
ServiceError
The user tried to upload a file that is too large.
Maximum upload size can be set with the
maximumUploadSizeBytes
chart value orMAX_CONTENT_LENGTH
environment value.Initialize the service error.
- code = 1150
- userMessage = 'The file you are trying to upload is too large. Maximum allowed size is: {maximum_size}'
- devMessage = 'Uploaded file size was larger than ``MAX_CONTENT_LENGTH``.'
- exception renku.ui.service.errors.ProgramInvalidGenericFieldsError(exception=None, wrong_values='Unknown')[source]
Bases:
ServiceError
One or more fields are unexpected.
This error should not be triggered by any user input, but rather by unexpected fields. It is most likely a bug on the client side.
Initialize the service error.
- code = 2001
- userMessage = 'There was an unexpected error while handling project data.'
- devMessage = 'Unexpected fields have been provided: {wrong_values}'
- exception renku.ui.service.errors.ProgramRepoUnknownError(exception=None, error_message='Unknown')[source]
Bases:
ServiceError
Unknown error when working with the repository.
This is a fallback error and it should ideally never show up. When it happens, it’s best to investigate the underlying error and either create a more specific error or open an issue.
Initialize the service error.
- code = 2010
- userMessage = 'Fatal error occurred while working on the repository.'
- devMessage = 'Unexpected repository error. Git error message: {error_message}'
- exception renku.ui.service.errors.ProgramGitError(exception=None, error_message='Unknown')[source]
Bases:
ServiceError
Unknown error when working with git.
This is a fallback error and it should ideally never show up. When it happens, it’s best to investigate the underlying error and either create a more specific error or open an issue.
Initialize the service error.
- code = 2020
- userMessage = 'Fatal error occurred while processing a git operation on the repository.'
- devMessage = 'Unexpected git error. Git error message: {error_message}'
- exception renku.ui.service.errors.ProgramContentTypeError(content_type='Unknown', expected_type='Unknown')[source]
Bases:
ServiceError
Content type not correctly specified.
Initialize the service error.
- code = 2030
- userMessage = 'Our servers could not process the received data.'
- devMessage = "Invalid requests headers. The content type should be set to '{expected_type}' instead of '{content_type}'"
- exception renku.ui.service.errors.ProgramProjectCreationError(exception=None, error_message='Unknown')[source]
Bases:
ServiceError
Error when creating a new project due to one or more wrong fields not controlled by the user.
Initialize the service error.
- code = 2102
- userMessage = 'Our servers could not create the new project.'
- devMessage = 'Project creation from a Renku template failed.It is likely that some non user input fields contain unexpected values: {error_message}.'
- exception renku.ui.service.errors.ProgramProjectCorruptError(exception=None)[source]
Bases:
ServiceError
Error triggered by an unexpected project corruption, not easily fixable by the user.
Initialize the service error.
- code = 2120
- userMessage = 'The Renku project seems partially corrupted, and the operation could not finish.'
- devMessage = 'Project corrupted. It probably requires manually fixing it, or reverting to a previous commit.'
- exception renku.ui.service.errors.ProgramGraphCorruptError(exception=None)[source]
Bases:
ServiceError
Error triggered by an unexpected failure while exporting the graph .
Initialize the service error.
- code = 2121
- userMessage = 'The Renku project seems partially corrupted, and the graph could not be generated.'
- devMessage = 'Could not generate the project graph. Check the Sentry exception for further details.'
- exception renku.ui.service.errors.ProgramUpdateProjectError(exception=None)[source]
Bases:
ServiceError
Updating the project failed.
Initialize the service error.
- code = 1140
- userMessage = 'Our servers could not update the project succesfully. You could try doing it manually in a session.'
- devMessage = 'Updating the target project failed. Check the Sentry exception for further details.'
- userReference = 'https://renku.readthedocs.io/en/stable/how-to-guides/general/upgrading-renku.html'
- exception renku.ui.service.errors.ProgramRenkuError(exception=None)[source]
Bases:
ServiceError
Renku error unexpected at service level for a specific operation.
Initialize the service error.
- code = 2200
- userMessage = 'Our servers could not process the requested operation. The following details may help: {renku_error}'
- devMessage = 'Unexpected Renku exception from a service operation: {renku_error}'
- exception renku.ui.service.errors.ProgramHttpMethodError(exception=None)[source]
Bases:
ServiceError
HTTP error 405 method not allowed.
The method cannot be used on the target endpoint. The service only supports GET and POST.
Initialize the service error.
- code = 2405
- userMessage = 'One of the resources on our servers could not process the data properly.'
- devMessage = "Error 405 - method not allowed. Check if you are using GET or POST as specified in the API documentation. Mind that the service doesn't support any other method."
- exception renku.ui.service.errors.ProgramHttpMissingError(exception=None)[source]
Bases:
ServiceError
HTTP error 404 not found.
Either the URL is wrong or the user doesn’t have permissions to access it.
Initialize the service error.
- code = 2404
- userMessage = 'One of the resources on our servers is not available at the moment.'
- devMessage = "Error 404 - not found. The resources are currently unavailable. This may happen when the user doesn't have permissions to access the target endpoint, or the endpoint URL is wrong or has been renamed."
- exception renku.ui.service.errors.ProgramHttpRequestError(exception=None)[source]
Bases:
ServiceError
HTTP error 400 bad request.
This is usually triggered by wrong parameters or payload. Double check the API documentation.
Initialize the service error.
- code = 2400
- userMessage = 'One of the resources on our servers could not process the data properly.'
- devMessage = 'Error 400 - bad request. Check if the payload and the parameters are correctly structured.'
- exception renku.ui.service.errors.ProgramHttpTimeoutError(exception=None)[source]
Bases:
ServiceError
HTTP error 408 request timeout.
This is usually triggered by wrong parameters or payload. Double check the API documentation.
Initialize the service error.
- code = 2408
- userMessage = 'The request took too long and was interruped.'
- devMessage = 'Error 408 - request timeout. There may be a client side delay.'
- exception renku.ui.service.errors.ProgramHttpServerError(exception=None, http_error_code=599)[source]
Bases:
ServiceError
Any other HTTP error.
Most of the times (always?) this will be a 50x error. The only way to get more details is to access the Sentry exception.
Initialize the service error.
- code = 2000
- userMessage = 'Fatal error occurred while working on the repository.'
- devMessage = 'Unexpected repository error. Check the Sentry exception for further details.'
- exception renku.ui.service.errors.ProgramInternalError(exception=None, error_message='Unknown')[source]
Bases:
ServiceError
Unknown internal error.
This is an unexpected exception probably triggered at the core level. Please use Sentry to get more information.
Initialize the service error.
- code = 2900
- userMessage = 'Our servers generated an unexpected error while processing data.'
- devMessage = 'Renku service internal error. Further information: {error_message}'
- exception renku.ui.service.errors.IntermittentProjectIdError(exception=None)[source]
Bases:
ServiceError
The project id cannot be found in the cache.
This is an unexpected error possibly related to a cache malfunction, or just an unlucky case if the operation was attempted just after the project was cleaned up form the local cache. The latter is unlikely to happen. The culprit may be the client if it explicitly provides the project id.
Initialize the service error.
- code = 3001
- userMessage = 'An unexpected error occurred. This may be a temporary problem. Please try again in a few minutes.'
- devMessage = 'Project id cannot be found. It may be a temporary problem. Check the Sentry exception for further details.'
- exception renku.ui.service.errors.IntermittentAuthenticationError(exception=None)[source]
Bases:
ServiceError
The user credentials were received but they are not valid.
This may happen for a number of reasons. Triggering a new login will likely fix it.
Initialize the service error.
- code = 3030
- userMessage = 'Invalid user credentials. Please try to log out and in again.'
- devMessage = 'Authentication error. Check the Sentry exception to inspect the headers'
- exception renku.ui.service.errors.IntermittentFileExistsError(exception=None, file_name='Unknown')[source]
Bases:
ServiceError
An operation failed because one or more files were expected not to exist.
It may be a synchronization error happening when two or more concurrent operations overlap and one creates content unexpected from another one.
Initialize the service error.
- code = 3110
- userMessage = "There was an error with the file '{file_name}'. Please refresh the page and try again."
- devMessage = "Unexpected error on file '{file_name}', possibly caused by concurrent actions."
- exception renku.ui.service.errors.IntermittentFileNotExistsError(exception=None, file_name='Unknown')[source]
Bases:
ServiceError
An operation failed because one or more files were expected to exist.
It may be a synchronization error happening when two or more concurrent operations overlap and one consumes the file expected by another one.
Initialize the service error.
- code = 3111
- userMessage = "There was an error with the file '{file_name}'. Please refresh the page and try again."
- devMessage = "Unexpected error on file '{file_name}', possibly caused by concurrent actions."
- exception renku.ui.service.errors.IntermittentSettingExistsError(exception=None, setting_name='Unknown')[source]
Bases:
ServiceError
An operation failed because one or more project settings does not exist.
It may be a synchronization error happening when two or more concurrent operations overlap and one tries to work on content already deleted from another one.
Initialize the service error.
- code = 3112
- userMessage = "There was an error with the setting '{setting_name}'. Please refresh the page and try again."
- devMessage = "Unexpected error on setting '{setting_name}', possibly caused by concurrent actions."
- exception renku.ui.service.errors.IntermittentDatasetExistsError(exception=None)[source]
Bases:
ServiceError
An operation failed because a dataset was expected not to exist.
It may be a synchronization error happening when two or more concurrent operations overlap and one tries to create content already created from another one.
Initialize the service error.
- code = 3130
- userMessage = 'The dataset creation failed because it already exists. Please refresh the page.'
- devMessage = 'Unexpected error creating a dataset, possibly caused by concurrent actions.'
Bases:
ServiceError
The reference template for the project is currently unavailable.
It may be a temporary issue in accessing the remote template, or it may have been deleted, moved, or otherwise not-accessible.
Initialize the service error.
- exception renku.ui.service.errors.IntermittentWorkflowNotFound(exception=None, name_or_id='Unknown')[source]
Bases:
ServiceError
An operation failed because a workflow could not be found.
It may be a synchronization error happening when two or more concurrent operations overlap and one tries to read content not yet created.
Initialize the service error.
- code = 3150
- userMessage = "The workflow '{name_or_id}' could not be found. Check that the name/id is correct and try again."
- devMessage = "Unexpected error on workflow '{name_or_id}', possibly caused by concurrent actions."
- exception renku.ui.service.errors.IntermittentTimeoutError(exception=None)[source]
Bases:
ServiceError
An operation timed out.
Initialize the service error.
- code = 3200
- userMessage = 'The operation was taking too long. Please try it again.'
- devMessage = 'Timeout error. See Sentry exceptions for details.'
- exception renku.ui.service.errors.IntermittentLockError(exception=None, message='Unknown')[source]
Bases:
ServiceError
An operation was deadlocked.
Initialize the service error.
- code = 3201
- userMessage = 'The operation was taking too long. Please try it again.'
- devMessage = 'Deadlocked operation. See Sentry exceptions for details.'
- exception renku.ui.service.errors.IntermittentRedisError(exception=None)[source]
Bases:
ServiceError
An error occurred when interacting with Redis.
Initialize the service error.
- code = 3202
- userMessage = 'The servers could not run the request operation. Please try it again.'
- devMessage = 'Redis error. See Sentry exceptions for details.'
- exception renku.ui.service.errors.IntermittentCacheError(exception=None)[source]
Bases:
ServiceError
An operation in the cache failed.
Initialize the service error.
- code = 3203
- userMessage = 'A server-side operation unexpectedly failed. Please try again.'
- devMessage = 'Cache error. See Sentry exceptions for details.'