VIRGO includes information about errors in the status message that it regularly sends out. The status message may include a top-level error dictionary and a per-feed error dictionary:
The error dictionary includes the error code, an error message, and if applicable the number of times that VIRGO has retried an operation.
Do not match errors by their error message. Only match errors by error code. The error message may change in the future while the error code is guaranteed to not change.
The following table lists the errors codes that the error dictionary in a VIRGO status message may contain:
Error Code | Meaning | Description |
---|---|---|
0 | Feed launch failure | A feed could not be launched because there was not enough memory or the feed daemon was not found. If you ever get this kind of error then this means that your VIRGO installation is broken beyond repair or the machine on which VIRGO is running is completely out of resources. |
1 | Unexpected feed termination | The feed terminated unexpectedly. Usually this means that the feed daemon has crashed or the system is low on memory and the OS decided to kill the feed daemon to recover memory. |
2 | Decoder not found | The feed daemon is unable to decode the video stream because it lacks the necessary video decoder. |
3 | Demuxer not found | The feed daemon is unable to process the video stream because it lacks the necessary demuxer component. |
4 | Protocol not found | The feed daemon is unable to process the video stream because it lacks the necessary network protocol handler. |
5 | Invalid data | The video stream can not be parsed because it contains unknown/invalid data. |
6 | Stream not found | There is no stream/file at the location indicated by the stream URL. |
7 | Bad HTTP request | The server vending the video stream has returned an “HTTP bad request” error. |
8 | HTTP unauthorized | The server vending the video stream has returned an “HTTP unauthorized” error. This usually means that the password embedded in the streaming URL is incorrect. |
9 | HTTP forbidden | The server vending the video stream has returned an “HTTP forbidden” error. This usually means that the video stream you are trying to connect to is not a publicly accessible video stream. |
10 | HTTP not found | There is no video stream available at the feed’s stream URL. |
11 | Other 4xx HTTP error | The server vending the video stream has returned some other kind of 4xx HTTP error. |
12 | HTTP server error | The server vending the video stream has returned a HTTP 500 class error. |
13 | No network | The feed lost network connection. This may mean that the feed is no longer able to receive a video stream or it may mean that it is unable to continue to do (cloud-based) recognition. The feed will automatically try to regain network connection. This error may also appear in the top-level status message. In this case it means that VIRGO itself was unable at some point to communicate with VIRGA. |
14 | File not found | The feed points to a file (file:// scheme URL) and it is unable to find the video file at that location. |
15 | Access denied | The feed is unable to open the video stream or video file because it lacks the necessary permissions to do so. For example, the feed points to a video file in the local file system and the video file belongs to a different user which does not allow reading of the file. |
16 | Timeout | Some kind of network timeout has occurred. This error is generated for any kind of network operation that may trigger a timeout. |
17 | I/O error | A generic I/O error has occurred. Eg the feed tried to read from the network and the operation has failed for some reason (but did not time out). Note that I/O errors may be indicative of resource shortage. |
18 | Unknown environment | You tried to switch VIRGO to another environment and VIRGO has no definition for this environment. An environment name must be one of the predefined environments or one of the custom defined environments listed in the VIRGO factory config file. |
19 | Unknown feed | You specified a feed name which does not refer to an existing feed. |
20 | Feed already exists | You tried to add a feed with a name to VIRGO which is already claimed by another feed. |
21 | Mandatory key missing | The COP message that you sent to VIRGO is missing a required property. |
22 | Mandatory feed key missing | This is the version of (21) which is returned if a feed-specific key is missing. |
23 | administrator | You tried to execute a VIRGO function which requires you to be the administrator of VIRGO. E.g. the VIRGO administrator is currently set to “VIRGA” and you tried to add a new feed to VIRGO via the VIRGO command line tool rather than VIRGA. Adding a feed to VIRGO in this case requires that you first switch the administrator from “VIRGA” to “VIRGO”. |
24 | Unknown administrator | You tried to switch VIRGO to an unknown administrator. The administrator name must be one of “VIRGA” (alternative name “cloud”) and “VIRGO” (alternative name “self”). |
25 | administrator URL missing | You tried to switch VIRGO from self-adminstration mode to VIRGA administration but the environment does not have a URL defined at which VIRGO could contact the administration (VIRGA) server. |
>= 1000 | Update failed | Applying a VIRGO update has failed for some reason. VIRGO automatically rolls back the previous version. |
26 | Other | Some other kind of error has occurred. |
27 | Codec parameters not found | The video decoder was unable to find the required decoder parameters in the video stream. |
28 | Detector service unavailable | The face detector service is currently unavailable. E.g. because of resource shortage or license restriction. |
29 | Detector service not authorized | The face detection service can not be used because access to it is not authorized. |
30 | Recognizer service unavailable | The face recognizer service is currently unavailable. E.g. because of resource shortage or a missing network connection. |
31 | Recognizer service not authorized | The face recognizer service can not be used because access to it is not authorized. One reason may be that you have forgotten to specify a directory name in the feed configuration. |
32 | Recognizer SSL error | The face recognizer service can not be accessed because of an SSL error. |
33 | Feed unresponsive | The feed appeared to be unresponsive and because of that was restarted. Too many unresponsive feeds or feeds which are repeatedly unresponsive are indicative of resource shortage. E.g. the machine on which VIRGO is running does not have enough processing power or memory to run them all at the same time. |
34 | No accelerator | The feed is configured to use a GPU exclusively but not enough GPU capacity is available to run the feed. You should assign the feed to the CPU or leave the decision making whether to use GPU or CPU to VIRGO by setting the feed accelerator to “auto”. |
35 | Detector out of memory | The detector is out of CPU memory. |
36 | Detector out of GPU memory | The detector is out of GPU memory. |
37 | Detector unable to load model | The detector is unable to find or load its neural network model file. |
38 | Detector unsupported GPU | The detector does not support the type of GPU on which you are trying to run it. |
39 | Detector failure | Some other kind of fatal detector failure has occurred. |
40 | Unknown accelerator ID | The feed is bound to a specific accelerator ID but VIRGO was not able to find this accelerator when it attempted to start up the feed. |
The following table lists the errors that are generated if an update from the current VIRGO version to a different VIRGO version failed:
Error Code | Meaning | Description |
---|---|---|
1000 | Update already in progress | You issued another update while an update is already in progress. Note that only one update at a time can happen. |
1001 | Invalid version number | The version number in the update metadata is not a valid semantic version number. |
1002 | Invalid attempt to downgrade | You attempted to downgrade the current VIRGO version to an older version for which no VIRGO exists on the machine. |
1003 | Invalid update token | An internal server error. If you ever see this then you have to reinstall VIRGO from scratch in order to update. |
1004 | No active update | Same as 1003. |
1005 | Missing download URL | The update requires a download but no download URL was specified in the update metadata. |
1006 | Invalid download URL | The provided download URL is not a valid URL. |
1007 | No network | The update could not be completed because the network was not available when VIRGO tried to download the update package. |
1008 | HTTP error | Some HTTP error occurred when VIRGO tried to download the update package. |
1009 | Corrupted archive | The VIRGO update package is corrupted and VIRGO is unable to decompress it. |
1010 | Archive validation failure | The downloaded VIRGO update package is missing components or has an incorrect structure. |
1011 | Unable to relaunch daemon | The VIRGO updater is unable to relaunch the VIRGO daemon after the update. This error should never occur in actual practice, If it does then you’ll have to reinstall VIRGO from scratch. |
1012 | Unable to migrate data | VIRGO was unable to migrate its data from the old version to the new version. |
1013 | Version already active | You attempted to “upgrade” VIRGO to the version that is already installed and running. |
1014 | Other | other kind of error has ocurred. |
Note that the VIRGO updater will always automatically roll back VIRGO to the previous version if an error is encountered while trying to install a new version. The old version is then restarted and will continue to operate the feeds.