Q:

The External Change Data Capture doesn't work with an error!

I'm using OData v4.0 and the External Object is set in Salesforce,  which is connected with Heroku Connect. However, the Change Data Capture feature does not work, and the following error occurs.
"Error: Can't schedule the next polling request for data changes. The OData producer doesn't support change tracking. The Preference-Applied header for odata.track-changes is missing in the response."
Please look a moment this issue. Thank you so much.

A:

As per OData doc - http://docs.oasis-open.org/odata/odata/v4.0/cs01/part1-protocol/odata-v4.0-cs01-part1-protocol.html#_Toc365046251
In a response to a request that specifies a Prefer header, a service MAY include a Preference-Applied header, as defined in [HTTP-Prefer], specifying how individual preferences within the request were handled.
The value of the Preference-Applied header is a comma-separated list of preferences applied in the response.
Salesforce typically checks that the prefer header should be sent back as Preference-Applied to make sure that the service understood the request and is able to track changes. Not all OData 4 providers are capable and if not, they may ignore the header and not track changes.
AFAIK, Heroku DB does not implement data change tracking (yet) - I believe it is on their roadmap.

