Error codes
Overview
If an error is detected, it will be written to the log except in the cases shown below.
In some cases it may be necessary to correct one group of errors before others become apparent. For instance, if the security file has the wrong number of columns, then this must be corrected before issues with the security definitions can be fixed.
General error codes
Condition | Value | Status | Description | Comment |
---|---|---|---|---|
ERC_OK | 0 | No issue detected |
File errors
Condition | Value | Status | Description | Comment |
---|---|---|---|---|
ERC_COULD_NOT_DELETE_LOG_FILE | 1 | Fatal | Log file cannot be erased, so program cannot proceed further.
This error can be triggered before the log file is created, therefore it is not written to the log. |
Log file may be open in another application, or you may not have permission to delete the file. |
ERC_CONFIG_FILE_NOT_FOUND | 2 | Fatal | Config file not found, therefore cannot proceed further. Either (i) no config file was supplied, or (ii) the supplied config file does not exist.
This error can be triggered before the log file is created, therefore it is not written to the log. |
Ensure that the configuration file exists and that it has been correctly passed to FIA, using a command of the form fiaXX -c filename.cnf. Note that the name may be case-sensitive. |
ERC_SECURITY_FILE_NOT_FOUND | 3 | Fatal | Mandatory security file has not been supplied or does not exist | Ensure that file exists and that it has been correctly specified in the config file, using the SecurityFile= parameter. Note that the name may be case-sensitive. |
ERC_PORTFOLIO_FILE_NOT_FOUND | 4 | Fatal | Mandatory portfolio file has not been supplied or does not exist | Ensure that file exists and that it has been correctly specified in the config file, using the PortfolioFile= parameter. Note that the name may be case-sensitive. |
ERC_BENCHMARK_FILE_NOT_FOUND | 5 | Fatal | Requested benchmark file was not found | Ensure that file exists and that it has been correctly specified in the config file, using the BenchmarkFile= parameter. Note that the name may be case-sensitive. |
ERC_YIELDCURVE_FILE_NOT_FOUND | 6 | Fatal | Requested yield curve file was not found | Ensure that file exists and that it has been correctly specified in the config file, using the YieldCurveFile= parameter. Note that the name may be case-sensitive. |
ERC_STRESS_FILE_NOT_FOUND | 7 | Fatal | Requested stress scenario file was not found | Ensure that file exists and that it has been correctly specified in the config file, using the StressFile= parameter. Note that the name may be case-sensitive. |
ERC_MAP_FILE_NOT_FOUND | 8 | Fatal | Requested security mapping file was not found | Ensure that file exists and that it has been correctly specified in the config file, using the MapFile= parameter. Note that the name may be case-sensitive. |
ERC_FX_FILE_NOT_FOUND | 9 | Fatal | Requested FX file was not found | Ensure that file exists and that it has been correctly specified in the config file, using the FXFile= parameter. Note that the name may be case-sensitive. |
ERC_CANNOT_OPEN_REPORT_FILE | 10 | Warning | Cannot write report file | File may be already open in another application, or you may not have permission to create a new file. |
ERC_CANNOT_CREATE_REPORT_DIRECTORY | 11 | Fatal | Cannot create directory named in configuraton field ReportDirectory | You may not have permission to create the requested directory. |
ERC_CANNOT_CREATE_EXCEL_WORKBOOK | 12 | Warning | Cannot create Excel workbook | Spreadsheet may be already open in another application, or you may not have permission to create a new file. |
ERC_CANNOT_CREATE_EXCEL_WORKSHEET | 13 | Warning | Cannot create Excel worksheet | Spreadsheet may be already open in another application, or you may not have permission to create a new file. |
File structures
Condition | Value | Status | Description | Comment |
---|---|---|---|---|
ERC_NO_DATA_FOUND | 100 | Fatal | No rows found in named file | |
ERC_WRONG_NUMBER_COLUMNS_IN_FILE | 101 | Fatal | For files that require a fixed number of columns, one or more rows contained too few or too many columns | |
ERC_INSUFFICIENT_DATA_COLUMNS | 102 | Fatal | For files that require a minimum number of columns, ensures at least the minimum number exists | |
ERC_INSUFFICIENT_DATES | 103 | Fatal | Returns data must be present at more than one date | Note that the first set of dates is only used to specify the start of the calculation interval; the values of the weights and returns do not matter, since the values at the end of the interval are used for attribution. For this reason, many of the demo files have zero weights and returns for the first date in the file. |
Date issues
Condition | Value | Status | Description | Comment |
---|---|---|---|---|
ERC_INVALID_DATE_FORMAT | 200 | Fatal | Could not interpret date using supplied format string | |
ERC_DATE_BEFORE_1970 | 201 | Fatal | Using the supplied format string, a date was interpreted as lying before 1970. | This is usually caused by supplying a two-figure year but a four-year format. |
ERC_INVALID_DATE_FORMAT | 202 | Fatal | A start and end date has been supplied in the configuration file, but the end date lies before the start date. | |
ERC_DATE_AFTER_2150 | 203 | Fatal | Using the supplied format string, a date was interpreted as lying after 2150. | 2150 should be beyond the maturity date of any bond currently issued or planned. |
Credit ratings
Condition | Value | Status | Description | Comment |
---|---|---|---|---|
ERC_INVALID_CREDIT_RATING | 300 | Fatal | Unrecognised credit rating | |
ERC_DUPLICATE_CREDIT_RATING_IN_CONFIG_FILE | 301 | Fatal | Verifies that there are no duplicates in credit rating list. |
Securities
Condition | Value | Status | Description | Comment |
---|---|---|---|---|
ERC_SECURITY_NAME_TOO_SHORT | 400 | Fatal | Security ID must be at least 3 characters long | |
ERC_PORTFOLIO_SECURITY_NAMES_IDENTICAL | 401 | Fatal | Security has same name as portfolio | |
ERC_UNRECOGNIZED_SECURITY_TYPE | 402 | Fatal | Security type is undefined | |
ERC_UNDEFINED_SECURITY_IN_PORTFOLIO | 403 | Fatal | Security has not been set up in the security definition file, or defined as a portfolio | |
ERC_DUPLICATE_SECURITY_IN_SECURITY_FILE | 404 | Fatal | Duplicate tuple (security name/active date) found in security definition file | |
ERC_INCONSISTENT_SECURITY_MAP | 405 | Fatal | Security identifier has been assigned to two or more security codes | |
ERC_INVALID_RETURN | 406 | Fatal | Local or base currency return must be > -1 |
Currencies
Condition | Value | Status | Description | Comment |
---|---|---|---|---|
ERC_UNRECOGNIZED_CURRENCY | 500 | Fatal | Currency code is not recognised | |
ERC_NO_FX_RATE_FOUND | 501 | Fatal | No FX rate found in file for given combination of date and currency |
Inflation indices
Condition | Value | Status | Description | Comment |
---|---|---|---|---|
ERC_NO_CPI_FILE | 550 | Fatal | Inflation data is required, but no inflation index file has been supplied | |
ERC_MISSING_CPI_DATA | 551 | Fatal | Insufficient historical data to calculate inflation return for a security was found |
Hedging
Condition | Value | Status | Description | Comment |
---|---|---|---|---|
ERC_NO_BASE_CURRENCY_DEFINED | 600 | Fatal | No base currency has been set up for hedging | |
ERC_UNRECOGNIZED_BASE_CURRENCY | 601 | Fatal | Currency selected as base for hedging is not recognised | |
ERC_INVALID_HEDGE_RATIO | 602 | Fatal | Hedge ratio was set to value less than zero or greater than one | |
ERC_MULTIPLE_CURRENCIES_IN_SECTOR | 603 | Fatal | Securities in more than one currency were found in a sector, but Brinson attribution requires single-currency sectors |
Weight and returns files
Condition | Value | Status | Description | Comment |
---|---|---|---|---|
ERC_EMPTY_PORTFOLIO | 700 | Fatal | Portfolio detected that contains no securities or sub-portfolios | |
ERC_DUPLICATE_PORTFOLIO_RECORDS | 700 | Fatal | Duplicate [date, security ID] entry found in portfolio file |
Stress test files
Condition | Value | Status | Description | Comment |
---|---|---|---|---|
ERC_DUPLICATE_SCENARIO_NAME | 800 | Fatal | Duplicate scenario name in stress test file |
Yield curves
Condition | Value | Status | Description | Comment |
---|---|---|---|---|
ERC_NO_SOVEREIGNCURVE_FOUND | 900 | Fatal | No sovereign curve found in given currency | |
ERC_NO_CREDITCURVE_FOUND | 901 | Fatal | No credit curve found in given rating and currency | |
ERC_INSUFFICIENT_YIELDCURVE_DATA | 902 | Fatal | Not enough points found (3 minimum) to define curve at given date, currency, rating | |
ERC_DUPLICATE_YC_RECORDS | 903 | Fatal | Duplicate records found in curve at given date, currency, rating. maturity | |
ERC_INVALID_TWIST_POINTS | 904 | Fatal | Supplied lower twist point must be higher than upper twist point |
Buckets
Condition | Value | Status | Description | Comment |
---|---|---|---|---|
ERC_INVALID_MATURITY_BUCKET | 1000 | Fatal | Supplied entry for maturity bucket not a valid maturity | |
ERC_EMPTY_MATURITY_LIST | 1001 | Fatal | MaturityList set to empty string | |
ERC_NEGATIVE_MATURITY_BUCKET | 1002 | Fatal | Negative value supplied for maturity bucket | |
ERC_INVALID_KRD | 1003 | Fatal | Supplied entry for KRD bucket not a valid maturity | |
ERC_EMPTY_KRD_LIST | 1004 | Fatal | KRDList set to empty string | |
ERC_NEGATIVE_KRD | 1005 | Fatal | Negative value supplied for KRD | |
ERC_INVALID_DURATION_BUCKET | 1006 | Fatal | Supplied entry for duration bucket not a valid maturity | |
ERC_EMPTY_DURATION_LIST | 1007 | Fatal | DurationList set to empty string | |
ERC_EMPTY_PARTITION_LIST | 1008 | Fatal | ReportSectors set to empty string | Erase this line, comment it out, or set to a valid partition variable (eg CURRENCY) |
ERC_EMPTY_CREDIT_RATING_LIST | 1009 | Fatal | CreditRatingList set to empty string | |
ERC_EMPTY_COUPON_LIST | 1010 | Fatal | CouponList set to empty string | |
ERC_INVALID_COUPON_BUCKET | 1011 | Fatal | Supplied entry for coupon bucket not a valid value | |
ERC_NEGATIVE_COUPON_BUCKET | 1012 | Fatal | Negative value supplied for coupon bucket | |
ERC_INVALID_TENOR | 1013 | Fatal | Supplied entry for tenor not a valid value | |
ERC_EMPTY_TENOR_LIST | 1014 | Fatal | TenorList set to empty string | |
ERC_NEGATIVE_TENOR | 1015 | Fatal | Negative value supplied for tenor point |
General
Condition | Value | Status | Description | Comment |
---|---|---|---|---|
ERC_INSUFFICIENT_MEMORY | 1100 | Fatal | Insufficient memory to run | |
ERC_CIRCULAR_LINK_IN_SECURITY_MAP | 1101 | Fatal | A security has been referenced to itself in the security map file | |
ERC_MULTIPLE_ROOT_NODES | 1102 | Fatal | More than one root node was detected for the given portfolio | |
ERC_UNRECOGNISED_OPTION | 1103 | Fatal | Unrecognised option supplied in configuration file | |
ERC_NAN_SUPPLIED | 1104 | Fatal | Field must be supplied for given security | |
ERC_REAL_CONVERSION_ERROR | 1105 | Fatal | Cannot convert field to real | |
ERC_INTEGER_CONVERSION_ERROR | 1106 | Fatal | Cannot convert field to integer | |
ERC_NON_NEGATIVE_NUMBER | 1107 | Fatal | Cannot convert field to non-negative real | |
ERC_CONFIG_FILE_ERROR | 1108 | Fatal | Error in configuration file | |
ERC_EMPTY_CELL | 1109 | Fatal | Cell cannot be empty | |
ERC_EMPTY_SECTOR_NAME | 1110 | Fatal | Empty sector name found in sector classification string | |
ERC_EMPTY_SECTOR_VALUE | 1111 | Fatal | Empty sector value found in sector classification string | |
ERC_NO_EQUALS_SIGN_IN_SECTOR_STRING | 1112 | Fatal | No equals sign found in sector classification string | |
ERC_MULTPLE_EQUALS_SIGNS_IN_SECTOR_STRING | 1113 | Fatal | Multiple equals signs found in sector classification string | |
ERC_INVALID_RESIDUAL_SECTOR_NAME | 1114 | Fatal | Both the supplied residual sector name and the default value are empty | |
ERC_INVALID_PARTITION_NAME | 1115 | Fatal | Supplied partition is not recognised | |
ERC_INVALID_FILE_NAME | 1116 | Fatal | Supplied portfolio or benchmark name cannot be used as file name | |
ERC_PARTITION_LIST_TOO_LONG | 1117 | Fatal | Supplied partition list is too long - Excel only allows a drill-down depth of 8 levels | |
ERC_MISMATCHED_PORTFOLIO_BENCHMARK_RECORDS | 1118 | Fatal | Records are present in the portfolio on dates when there are no records in the benchmark, or vice versa |