Campaign: registerDevice additional parameters missing from appSubscriptionRcp
In Adobe Campaign Classic v8 FFDA, a common customization is to add extra subscription attributes and populate them through the mobile registerDevice API. This can fail if the extension of nms:appSubscriptionRcp relies on autoStg=“true” in a schema family that already has an out-of-the-box staging schema. In that case, the additional parameters may not be stored correctly, and in some situations the staging schema can be regenerated into a non-working state.
Description description
A custom implementation adds new fields to nms:appSubscriptionRcp and passes values through the mobile registerDevice call by using additionalParameters.
Symptoms can include:
- The registerDevice request contains the additional parameters, but the values are not persisted.
- Inserts or updates against the staging table do not include the expected custom columns.
- After enabling autoStg=“true” in the appSubscriptionRcp extension and updating the database structure, device registration starts failing.
- Errors similar to the following may appear:
XSV-350023 Unable to save document of type ‘nms:appSubscriptionRcpStg’
QUE-370007 Unable to find key values for element ‘Subscriber application (Staging)’
Element ‘mobileApp’ unknown
Resolution resolution
Cause
autoStg=“true” is not a general-purpose mechanism for extending out-of-the-box schemas that already use an existing staging schema.
It works for supported use cases where a custom schema and its staging model are authored from scratch. It is not the correct approach for extending nms:appSubscriptionRcp, because that schema already depends on the out-of-the-box staging schema nms:appSubscriptionRcpStg. Enabling autoStg=“true” in this case can trigger automatic regeneration of the staging schema in a way that does not preserve the expected out-of-the-box structure, links, and keys.
Resolution
Use the following approach:
Do not enable autoStg=“true” on the appSubscriptionRcp extension when working with the out-of-the-box subscription schema in ACC v8 FFDA.
Extend both schemas explicitly:
- the main subscription schema
- the staging schema used for device registration persistence
Map the subscription parameters to fields that exist in the staging path used by registerDevice.
Validate the end-to-end flow by confirming that:
- the request payload contains additionalParameters
- the staging schema includes the expected custom fields
- the values are persisted after device registration
If autoStg=“true” was already applied:
Remove autoStg=“true” from the appSubscriptionRcp extension.
Revert nms:appSubscriptionRcpStg to its out-of-the-box definition.
Reapply the required custom fields through an explicit extension of the staging schema instead of using auto-generation.
Reload caches and restart the relevant services if needed so the corrected schema definition is picked up consistently.
Re-test registerDevice.