Convienient way to get highest ErrorCode
Just call the following command to get the currently highest value of E1XXX codes here in the doc. E1XXX only, because the E4321 is used as example below.
php -r '$text = file_get_contents("https://confluence.translate5.net/display/TAD/ErrorCodes"); preg_match_all("/(E1[0-9]{3})/", $text, $codes); print_r(max(array_unique($codes[0])));echo "\n";'
or to get a whole list sorted from lowest to highest:
php -r '$text = file_get_contents("https://confluence.translate5.net/display/TAD/ErrorCodes"); preg_match_all("/(E[0-9]{4})/", $text, $codes); $codes = array_unique($codes[0]); sort($codes); print_r($codes);echo "\n";'
In the future each error in translate5 should have an own error code to improve support / make live for help desk easier.
List of ErrorCodes
General
EventCode | Context | ErrorMessage | Description / Solution |
---|---|---|---|
E0000 | everywhere | Several | Code used for multi purposes: Mostly for debug messages below level warn, where no fixed message is needed. |
E9999 | everywhere | Several | Default code used for old error messages, which are not converted yet to the new error code system. |
E1014 | everywhere | Log HTTP Request | The HTTP request to the server and its parameters are logged. Generally for debugging only. |
E1015 | entities | Duplicate Key | A database key for the entity to be saved does already exist. |
E1016 | entities | Integrity Constraint Violation | An entity can not be added or updated since a referenced entity does not exist (anymore). Or an entity can not be updated or deleted since it is referenced by other entities. |
E1019 | everywhere | HTTP Status 404 | The requested URL / page was not found, the API endpoint in the application does not exist. |
Task & Workflow
EventCode | Context | ErrorMessage | Description / Solution |
---|---|---|---|
E1011 | Task; Workflow | Multi Purpose Code logging in the context of a task | Multi Purpose code for several info logs around a task. Also important in Context of workflow. |
E1012 | Job; Workflow | Multi Purpose Code logging in the context of jobs (task user association) | Multi Purpose Code logging in the context of jobs (task user association) |
E1013 | Workflow only | Multi Purpose Code logging in the context of pure workflow processing | Multi Purpose Code logging in the context of workflow processing |
Import
ErrorCode | Context | ErrorMessage | Description / Solution |
---|---|---|---|
E1000 | SdlXliff Fileparser | The file "{filename}" contains SDL comments which are currently not supported! | Since "{filename}" can not be imported, omit that file or remove SDL comments for a successful import. |
E1001 | SdlXliff Fileparser | The opening tag "{tagName}" contains the tagId "{tagId}" which is not SDLXLIFF conform! | That "{tagName}" contains the tagId "{tagId}" is not valid SDLXLIFF according to our reverse engineering of the SDLXLIFF format. Probably the parse has to be extended here. |
E1002 | SdlXliff Fileparser | Found a closing tag without an opening one. Segment MID: "{mid}". | Invalid XML structure in the mentioned SDLXLIFF file. |
E1003 | SdlXliff Fileparser | There are change Markers in the sdlxliff-file "{filename}"! | SDLXLIFF change markup is not supported. |
E1004 | SdlXliff Fileparser | Locked-tag-content was requested but tag does not contain a xid attribute. | Invalid SDLXIFF according to our reverse engineering. |
E1005 | SdlXliff Fileparser | <sdl:seg-defs was not found in the current transunit: "{transunit}" | Invalid SDLXIFF according to our reverse engineering. |
E1006 | SdlXliff Fileparser | Loading the tag information from the SDLXLIFF header has failed! | Check if SDLXLIFF header content is valid XML. |
E1007 | SdlXliff Fileparser | The tag "{tagname}" is not defined in the "_tagDefMapping" list. | Invalid SDLXIFF according to our reverse engineering. The used tags are either not contained in the tag definition list in the header, or the parser did not parse the header completely. |
E1008 | SdlXliff Fileparser | The tag ID "{tagId}" contains a dash "-" which is not allowed! | Dashes are not allowed, since this may interfere with the GUI where dashes are used as delimiter in the IDs. |
E1009 | SdlXliff Fileparser | The source and target segment count does not match in transunit: "{transunit}". | Invalid SDLXIFF according to our reverse engineering. |
E1010 | SdlXliff Fileparser | The tag "{tagname}" was used in the segment but is not defined in the "_tagDefMapping" list! | Invalid SDLXIFF according to our reverse engineering. The used tags are either not contained in the tag definition list in the header, or the parser did not parse the header completely. |
E1017 | CSV Fileparser | The regex {regex} matches the placeholderCSV string {placeholder} that is used in the editor_Models_Import_FileParser_Csv class to manage the protection loop. | It is not allowed to use a regular expression to protect CSV content which matches the internally used placeholder. Please find another solution to protect what you need to protect in your CSV via Regular Expression. |
E1018 | CSV Fileparser | The string $this->placeholderCSV ({placeholder}) had been present in the segment before parsing it. This is not allowed. | The mentioned placeholder string is used for internally replacement, therefore it may not occur in the real CSV content. |
E1020 | Relais Import | Errors in processing relais files: The following MIDs are present in the relais file "{fileName}" but could not be found in the source file, the relais segment(s) was/were ignored. MIDs: {midList} | For the listed MIDs the source segment was not found to the MID in the relais file, the Relais segment was ignored on import. The affected file is also logged. |
E1021 | Relais Import | Errors in processing relais files: Source-content of relais file "{fileName}" is not identical with source of translated file. Relais target is left empty. Segments: {segments} | For the listed segments the source content in the source file and in the relais file was different, therefore no relais target content was saved to the segment. |
E1022 | Relais Import | Errors in adding relais segment: Source-content of relais file "{fileName}" is identical with source of translated file, but still original segment not found in the database: {segments} | This issue is similar to ErrorCodes, first a matching source segment was found to the relais segment, the source content equals, but the relais target data could not be saved. Investigate additional debug content! |
Export
ErrorCode Design rules / decisions
- Prefixed with "E" so that a search for the error code through the code is more reliable than just searching for a number
- No structure in the numbering to prevent discussions is it an error E12XX or E45XX
- Do not start at 1 and don't use leading zeros.
- Each usage of an error in the code should get separate code. Even if the error message / reason is the same. Reason is that the help desk might need to do different things in different cases.
- Information about the error here in the list should not be copied, but errors can point to another errors: "E 4321: See E 1234". Thats work to maintain, but better as confusing the client by giving wrong hints.
- if it makes sense for the support / help desk to split up an error in different errorcodes because of different reasons, than this should be done in the code so far
Never forget the purpose of error codes: make life easier for support / help desk.