diff --git a/packages/adapter/src/lib/adapter/adapter.ts b/packages/adapter/src/lib/adapter/adapter.ts index 3e5ce6ac5..d88c5db49 100644 --- a/packages/adapter/src/lib/adapter/adapter.ts +++ b/packages/adapter/src/lib/adapter/adapter.ts @@ -11799,8 +11799,14 @@ export class AdapterClass extends EventEmitter { for (const instObj of instanceObj.instanceObjects) { const obj: IoPackageInstanceObject & { state?: unknown } = instObj; + const allowedTopLevelTypes: ioBroker.ObjectType[] = ['meta', 'device']; + // the object comes from non-checked io-package, so treat the id as unknown - if (!obj || typeof (obj._id as unknown) !== 'string' || (!obj._id && obj.type !== 'meta')) { + if ( + !obj || + typeof (obj._id as unknown) !== 'string' || + (obj._id === '' && !allowedTopLevelTypes.includes(obj.type)) + ) { this._logger.error( `${this.namespaceLog} ${this.namespace} invalid instance object: ${JSON.stringify(obj)}` );