Remote API, Objectify and the DevServer do not like transactions?


I am using objectify 4 to write to the HRD datastore. Everything works fine in unit tests and running the application in devserver or production.

But when I try connect using the REMOTE API to the devserver datastore, an error is thrown when the code starts a XG transaction. While connecting with the Remote API, it seems to think that HRD is not enabled. This is how I connect ...

public static void main(String[] args) {
    RemoteApiOptions options = new RemoteApiOptions().server("localhost", 8888).credentials("foo", "bar");
    //options = options.
    RemoteApiInstaller installer = new RemoteApiInstaller();
    StoredUser storedUser = null;
    try {
        storedUser = new StoredUserDao().loadStoredUser(<KEY>);"found user : " + storedUser.getEmail());

        // !!! ERROR !!!
        new SomeOtherDao().doSomeDataManipulationInTransaction();

    } catch (Throwable e) {
    } finally {

When new SomeOtherDao().doSomeDataManipulationInTransaction() starts a transactions on multiple entity groups I get the error thrown :

transactions on multiple entity groups only allowed in High Replication applications

How can I tell the remote api that this is a HRD environment ?

If your application is using the High Replication Datastore, add an explicit s~ prefix (or e~ prefix if your application is located in the European Union) to the app id

For Java version, add this prefix in the application tag in the appengine-web.xml and then deploy the version where you have activated the remote_api servlet