Skip to content

PQA007 — Event string does not start with required prefix

A declared event id does not begin with pq.event., so the generator skips it.

Event ids are the platform's routing keys. The generator turns each dotted id into a nested class path, and the leading pq.event. is what marks the id as an event in the first place.

events:
  - technical.fault.hardware        # missing the pq.event. prefix
  - pq.event.technical.fault.hardware
// what the well-formed id generates on the Thing — do not write this yourself
public ValueTask<bool> HardwareFault(DeviceTimestamp timestamp, string faultDescription, string? faultCode = null)

Why the build refuses this

The malformed id generates nothing and the adapter looks complete. The entry is skipped, so no publication method appears for it — and the first sign of trouble is an event the customer never sees in the audit log.

The prefix is not decoration. It is the first segment of the message subject the platform subscribes on; an id without it addresses nothing.

How to fix it

Write the id in full, exactly as the taxonomy spells it, including the pq.event. prefix. An id that carries the prefix but names no event in the taxonomy is reported separately as PQA027.

What is not reported

pq.event.device.unknown. The last-resort fallback event is generated as a root-level shortcut and is exempt from the prefix walk.

If you disagree with a report

Do not suppress it. A wrong report is a bug in the check — report it with the YAML that triggered it.