Error codes
Error codes
This document describes error codes and how to resolve them.
E001: Name is required
When instantiating a topology you need to specify a name. You have two options:
- add
--name <name>
to your command line - add a name attribute in the instance.yaml:
schema: remotive-topology-instance:0.6
name: <name>
E002: Schema is required
Each instance.yaml must have the schema name and version:
schema: remotive-topology-instance:0.6
E003: Major version mismatch
The schema major version isn't supported by the RemotiveTopology CLI you are using. You need to use an older or newer version of the CLI. Notice that all included instance.yaml files must use the same major version.
E004: Minor version mismatch
The schema minor version isn't supported by the RemotiveTopology CLI you are using. Upgrade RemotiveTopology CLI.
E005: Invalid schema
Schema version must be specified using remotive-topology-instance:<major>.<minor>
format.
E006: settings.remotivebroker.version
is required
To instantiate the topology a specific version of RemotiveBroker is needed. To get consistent behavior setting a fixed version is recommended.
E010: Undefined ECU
The ECU is missing from the platform. This can be because a platform file is missing or because of a spelling error. Ensure that you have added the proper signal databases or ECU extracts. For example use remotive-topology show topology ecu-extract.arxml
to verify that the ECU has the name you are expecting.
E011: Undefined channel
The channel is missing from the platform. Ensure that the spelling is correct. Sometimes channels aren't defined in ARXML and must be added manually, for example by adding a DBC file:
schema: remotive-topology-platform:0.6
channels:
DriverCan0:
type: can
database: ../databases/driver_can.dbc
can_physical_channel_name: DriverCan0
E012: Undefined ECU channel
The ECU isn't connected to the channel. Ensure the spelling is correct. To manually add an ECU channel you can add the following:
schema: remotive-topology-platform:0.6
ecus:
BCM:
channels:
DriverCan0:
This adds the DriverCan0 to the BCM
.
E013: Invalid EthernetChannel
An EthernetChannel must include subnet.
schema: remotive-topology-platform:0.6
channels:
ETH:
type: ethernet
subnet: 10.1.1.0/24
E014: CAN UDP driver must be empty or contain subnet, target_host
, and port
When using UDP emulation for CAN you can optionally specify details about the UDP broadcast. If you specify subnet
, target_host
or port
you must specify all three.
Option 1: use defaults (automatically assigns free subnet and port)
schema: remotive-topology-instance:0.6
channels:
DriverCan0:
type: can
driver:
type: upd
Option 2: explicit configuration
schema: remotive-topology-instance:0.6
channels:
DriverCan0:
type: can
driver:
type: upd
port: 14000
subnet: 10.19.1.0/24
target_host: 230.0.0.1
The explicit configuration might be useful when adding other tools such as Wireshark.
E015: Failed to map ecu to channel
RemotiveTopology couldn't determine how the ECU is connected to the channel. This can happen because there is missing information in the platform, for example for ethernet channels the platform must specify the host IP of the ECU:
ecus:
MyECU:
channels:
Eth:
config:
type: ethernet
host: 10.1.4.50
E016: Invalid device_name
for device_name
This error occurs when using the dockercan
driver, but the device_name
doesn't follow the required rules. The device_name
must be 1–14 characters long and consist only of lowercase alphanumeric characters and dashes (a-z
, 0-9
, and -
).
To resolve this issue, specify a valid device_name
in your instance configuration:
schema: remotive-topology-instance:0.6
channels:
DriverCan0:
type: can
driver:
type: dockercan
device_name: host-can
E017: Invalid device name for peer
This error occurs when using the dockercan
driver, but the peer
name doesn't follow the required rules. The peer
name must be 1–13 characters long and consist only of lowercase alphanumeric characters and dashes (a-z
, 0-9
, and -
).
Note that the default peer name is derived from the channel name. For channels with names longer than 13 characters, you must explicitly specify the peer name.
To resolve this issue, specify a valid peer
name in your instance configuration:
schema: remotive-topology-instance:0.6
channels:
DriverCan0:
type: can
driver:
type: dockercan
device_name: host-can
peer: drivercan
E018: device_name
is required for driver
Channel instance driver (e.g. macvlan
, ipvlan
) requires a device_name
which is used to connect to a physical device.
E019: Failed to instantiate channel
RemotiveTopology couldn't determine how to instantiate the channel. Try adding an instance channel.
E020: Failed to load
This typically happens because the file is correctly formatted or corrupt.
E021: Failed to copy database
Signal databases must be copied to be part of the generated output. This error happens when a signal database couldn't be copied. Make sure:
- the path to the signal database is correct
- the file system permissions on the signal database is correct
- the file system permissions on output folder is correct
When running remotive-topology
using docker, make sure that all files exist in a sub-folder of your current working directory.
E022: Failed to parse file
This can happen when there is an error in a topology instance or platform file. The error message includes which field and specifically what failed when parsing the file. Having json schema validation setup in your editor makes it easier to find this type of errors. A common mistake is to forget the type
field when creating a channel or channel config
.
E030: SOME/IP service instance not found
This happens when provided_service_instances
or consumed_service_instances
is referring to an instance that's not defined. Make sure the service is defined in the same channel as it's being used.
E031: SOME/IP service provider endpoint not found
This happens when trying to consume a service instance that has no provided_service_instances
defined.
E032: SOME/IP endpoint type mismatch
This happens when trying to consume a SOME/IP service with the incorrect protocol. For example if the service instance is provided over TCP it must be consumed over TCP or vice versa for UDP.
E033: SOME/IP service instance service_id
missing
This typically happens when manually configuring a SOME/IP service instance and you forget to set the service_id
.
E034: SOME/IP service instance instance_id
missing
This typically happens when manually configuring a SOME/IP service instance and you forget to set the instance_id
.
E035: SOME/IP service instance version_major
missing
This typically happens when manually configuring a SOME/IP service instance and you forget to set the version_major
. This can also happen when ARXML is missing version_major
which probably means that it's not intended to be instantiated.
E040: Static socket connection not found
This happens when trying to instantiate an ethernet channel with static socket connections and the channel instance is referring to a connection that doesn't exist in the platform.
E050: model name must be lowercase
Behavioral models must use lowercase. This is because of a limitation in Docker.
E051: No container specified for model
Behavioral models must have a container.
ecus:
BCM:
models:
bcm:
type: container
container:
build:
dockerfile: ../special-python-runner.dockerfile
It's quite common to have the same dependencies for all python models and in this case you can specify a default dockerfile:
settings:
docker:
python:
build:
dockerfile: ../python-runner.dockerfile
E052: No container specified for mocks
** Deprecated since 0.7.0 **
Currently mocks must have a container configuration:
settings:
docker:
mock:
build:
dockerfile: ../mock.dockerfile
E053: Either dockerfile or image must be specified
When defining a container you can either use an existing image or use a dockerfile to build your custom container. In your dockerfile you can specify which base image you want to use.
Notice that this applies to all container configurations, i.e. both for mocks, models, ecus, and generic containers.
E054: Container build args
can only be used with dockerfile
The container build property args
represents the build arguments which are available when building from a dockerfile. Don't specify args
when only using image
. Instead use environment
if you want to specify environment variables that are available to the container.
E055: Target can only be used with dockerfile
The container build property target
decides which stage in a multi-stage dockerfile to use when building from a dockerfile. Don't specify target
when only using image
.
E056: Dockerfile must be inside the context
When specifying both build context and dockerfile, then the dockerfile must be inside that context.
E057: Both context and dockerfile missing
When specifying container build, then context and/or dockerfile must be specified.
E060: Multiple lin auto_config_boot_server
servers configured
When connecting RemotiveLabs LIN hardware, all LIN channels for a single ECU (RemotiveBroker) must use the same port number configured for auto_config_boot_server
. To fix this issue check what other LIN channels are configured for the ECU and make sure they all use the same auto_config_boot_server
port number. Remember that each ECU needs to use its own, unique port. Try running:
remotive-topology show topology your-instance-file.instance.yaml --resolve
E061: Lin channel has no master ECU configured
Verify that the LDF file includes a master ECU.
E062: Lin master has no schedule_table specified
The instance contains a LIN master, but it has no LIN schedule specified.
Unexpected errors
For the following errors or other unexpected problems you can contact support@remotivelabs.com for help.
E900: Error when building broker config
This is an unexpected error that happened when generating configuration for RemotiveBroker. Verify the platform and instance configuration for the affected ECU.
E901: Failed to generate ecu
This is an unexpected error that happened when generating docker compose configuration for a particular ECU. Verify the platform and instance configuration for the affected ECU.
E902: Failed to generate channel
This is an unexpected error that happened when generating docker compose configuration for a particular channel. Verify the platform and instance configuration for the affected channel.
E903: Failed to generate TopologyBroker config
This is an unexpected error that happened when generating configuration for the TopologyBroker. Verify the platform and instance configuration for the affected channel.