ER_BUS_INTERFACE_MISMATCH - Interface versions

asked 2016-01-07 08:11:57 -0700

The scenario is this,

  • I have two or more AllJoyn devices on the network.
  • They all expose the same interface name.
  • Some of the AJ devices expose extra functions on the same interface name, they are running a newer version of the interface with extra features for example.
  • I join a session with one of the devices and introspect it, this works fine.
  • I connect to one of the other devices but it fails at ProxyBusObject.IntrospectRemoteObject() with error,

359.115 ** ERROR ALLJOYN external10692 ..._core\src\XmlHelper.cc:286 | XML interface does not match existing definition for "com.interfacename": ER_BUS_INTERFACE_MISMATCH

Is this not a valid scenario? I'm only using a single message bus, should I use a different message bus for every connection? Shouldn't an interface be associated with a service name, not just a bus?



edit retag flag offensive close merge delete


Can you please provide some additional details of both interfaces (one with fewer functions and the other with extra functions)? AllSeen Interface Review Board Design Guidelines are available here: https://wiki.allseenalliance.org/irb/interface_design_guidelines_1.0

praveenb ( 2016-01-07 16:34:25 -0700 )edit

1 answer

Sort by ยป oldest newest most voted

answered 2016-01-08 01:02:54 -0700

this post is marked as community wiki

This post is a wiki. Anyone with karma >75 is welcome to improve it.

I'm marking this as the answer for future reference.

The important point to note of AllSeen Interface Review Board Design Guidelines is the section 'Designing for Evolution' . In my case, the relevant points are,

Every new version of an Interface must be a strict superset of the previous version of that Interface. That means that every new version of an Interface may:

  • add new members (properties, signals, methods). The following things are expressly forbidden:

  • remove existing members change member signatures

I've not followed this, I assumed that each interface is referenced to the device but looking at the source in XmlHelper.cc I can see an interface name is checked against the bus.

Thanks for your help praveenb.

edit flag offensive delete publish link more
Login/Signup to Answer

Question Tools

1 follower


Asked: 2016-01-07 08:11:57 -0700

Seen: 107 times

Last updated: Jan 08 '16