Skip to main content

Error codes

Error codes

This documnent 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:

  1. add --name <name> to your command line
  2. add a name attribute in the instance.yaml, eg:
schema: remotive-topology-instance:0.4
name: <name>

E002: schema is required

Each instance.yaml must have the schema name and version, eg

schema: remotive-topology-instance:0.4

E003: major version mismatch

The schema major version is not 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 is not 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 we recommend setting a fixed version.

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 are not defined in ARXML and must be added manually, for example by adding a DBC file:

schema: remotive-topology-platform:0.4
channels:
DriverCan0:
type: can
database: ../databases/driver_can.dbc
can_physical_channel_name: DriverCan0

E012: Undefined ECU channel

The ECU is not 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.4
ecus:
BCM:
channels:
DriverCan0:

This adds the DriverCan0 to the BCM.

E013: Invalid EthernetChannel

An EthernetChannel must include subnet.

schema: remotive-topology-platform:0.4
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.4

channels:
DriverCan0:
type: can
driver:
type: upd

Option 2: Explicit configuration

schema: remotive-topology-instance:0.4

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 could not 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 does not 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.4

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 does not 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.4

channels:
DriverCan0:
type: can
driver:
type: dockercan
device_name: host-can
peer: drivercan

E018: device_name is required for driver

Channel instance driver (eg macvlan, ipvlan) requires a device_name which is used to connect to a physical device.

E019: Failed to instantiate channel

RemotiveTopology could not 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 could not 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 subfolder of your current working directory.

E030: SOME/IP service instance not found

This happens when provided_service_instances or consumed_service_instances is referring to an instance that is not defined. Make sure the service is defined in the same channel as it is 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 is 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 does not 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:
dockerfile: ../special-python-runner.dockerfile

It is quite common to have the same dependencies for all python models and in this case you can specify a default dockerfile:

settings:
docker:
python:
dockerfile: ../python-runner.dockerfile

E052: No container specified for mocks

Currently mocks must have a container configuration:

settings:
docker:
mock:
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, ie both for mocks, models, ecus and generic containers.

E054: Container build args can only be used with dockerfile

The container property args represents the build arguments which are available when building from a dockerfile. Do not specify args when only using image. Instead use environment if you want to specify environment variables that are available to the container.

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.

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.