I had the same problem, and to resolve the issue, I had to modify the routes in the neo-app.json as below. In my case, I have an ABAP backend system, and the way I understand it now, is that these routes can help identify where the persistance is done for the variants. Look at:
"path": "/sap/bc/lrep/changes", "path": "/sap/bc/lrep/variants", "path": "/sap/bc/lrep/flex/settings", "path": "/sap/bc/lrep/flex/data"
neo-app.json contents:
{
"welcomeFile": "/webapp/index.html",
"routes": [
{
"path": "/resources",
"target": {
"type": "service",
"name": "sapui5",
"entryPath": "/resources"
},
"description": "SAPUI5 Resources"
},
{
"path": "/test-resources",
"target": {
"type": "service",
"name": "sapui5",
"entryPath": "/test-resources"
},
"description": "SAPUI5 Resources"
},
{
"path": "/webapp/resources",
"target": {
"type": "service",
"name": "sapui5",
"entryPath": "/resources"
},
"description": "SAPUI5 Resources"
},
{
"path": "/webapp/test-resources",
"target": {
"type": "service",
"name": "sapui5",
"entryPath": "/test-resources"
},
"description": "SAPUI5 Test Resources"
},
{
"path": "/sap/opu/odata",
"target": {
"type": "destination",
"name": "S4H",
"entryPath": "/sap/opu/odata"
},
"description": "S4H"
},
{
"path": "/sap/bc/lrep/flex/data",
"target": {
"type": "destination",
"name": "S4H",
"entryPath": "/sap/bc/lrep/flex/data"
},
"description": "S4H_data"
},
{
"path": "/sap/bc/lrep/flex/settings",
"target": {
"type": "destination",
"name": "S4H",
"entryPath": "/sap/bc/lrep/flex/settings"
},
"description": "S4H_settings"
}
,
{
"path": "/sap/bc/lrep/changes",
"target": {
"type": "destination",
"name": "S4H",
"entryPath": "/sap/bc/lrep/changes"
},
"description": "S4H_changes"
}
,
{
"path": "/sap/bc/lrep/variants",
"target": {
"type": "destination",
"name": "S4H",
"entryPath": "/sap/bc/lrep/variants"
},
"description": "S4H_variants"
}
],
"sendWelcomeFileRedirect": true
}