Having trouble setting up transaction - TypeError: 'deleteProperty' on proxy: trap returned falsish for property '___jsonclass'

Hi,

I am trying to use transactions and have read and watched the related documentation. I am running into a puzzling case.

When setting up a transaction with 3 operations, the first one causes an error, although it is a “direct” upsert operation on the main table and I would have thought this would be pretty simple and straighforward.

When executing the same upsert operation beforehand with a classic API call, there is no issue.

For comparison, here is the working codeless logic, with the operation highlighted in green:

And here is the problematic codeless logic, with the operation highlighted in red:

The error shows up in console and seems to happen before the API call is even sent. Here is the error code:

TypeError: 'deleteProperty' on proxy: trap returned falsish for property '___jsonclass'
    at _class.addOperations (sdk.js:14:1096349)
    at _class.upsert (sdk.js:14:1099023)
    at code.js:32:10
    at Object.fn_1326db6b3e3aff2a5b7cc37a6e85020d (code.js:36:5)
    at Object.onClick (bundle.js:74:84)
    at runHandler (sdk.js:14:561243)
    at i.available.t.<computed> (sdk.js:14:563310)
    at Object.Rb (sdk.js:14:1663575)
    at Xb (sdk.js:14:1663729)
    at Yb (sdk.js:14:1681746)

I have a working logic, albeit with 2 API calls instead of one, so this is not urgent. But I would still like to understand. Thanks for any pointers in the right direction.

I am aware that I may not have fully understood the way transactions are set up, but I found relatively little documentation or help in the forum. Sorry if this is a newbie mistake.

Hello @Nicolas_REMY

Thanks for reporting us about that issue.

Could you please share what the boat block contains, the easiest way is to add a Print block and then check it in the RealTime Logging panel

Here is the content of boat, when called immediately before the transaction block:

{
    "image": "https://xxx.backendless.app/api/files/images/boats/D51DD75F-0EB9-4BBB-9349-2EC74562EB06",
    "flag": {
        "continent": {
            "code": "NA",
            "created": 1645100028000,
            "nameFr": "Amérique du Nord",
            "___class": "Continents",
            "nameEn": "North America",
            "ownerId": null,
            "updated": 1646735523669,
            "objectId": "vZNZcahFvu"
        },
        "code3": "MEX",
        "emojiU": "U+1F1F2 U+1F1FD",
        "code2": "MX",
        "capital": "Mexico City",
        "code": null,
        "emoji": "🇲🇽",
        "geonameid": "3996063",
        "nameFr": "Mexique",
        "ownerId": null,
        "createdAt": null,
        "nameLoc": "México",
        "___class": "Countries",
        "currency": "MXN",
        "objectId": "jbrIeE76hr",
        "updatedAt": null,
        "provinces": null,
        "languages": null,
        "cities": null,
        "shape": null,
        "created": 1645100029000,
        "ACL": null,
        "nameEn": "Mexico",
        "tld": ".mx",
        "timezones": null,
        "phone": "52",
        "updated": 1646676908849,
        "status": 2
    },
    "year": 1957,
    "mmsi": "111222333",
    "created": 1637535123857,
    "ownerId": null,
    "name": "Botesito",
    "callsign": "CallMeToo",
    "___class": "Boats",
    "registration": "reggie",
    "model": {
        "lwl": null,
        "beam": null,
        "engineMake": null,
        "engineHpMax": null,
        "engineType": null,
        "riggingType": null,
        "ownerId": null,
        "sourceUrl": null,
        "engineNb": null,
        "draftMax": null,
        "engineHpMin": null,
        "images_json": null,
        "builder": null,
        "___class": "BoatModels",
        "construction": null,
        "transmissionType": null,
        "displacement": null,
        "yearFirstBuilt": null,
        "waterTank": null,
        "make": {
            "created": 1645049978856,
            "name": "Hobie",
            "___class": "BoatMakes",
            "ownerId": null,
            "updated": 1646735523640,
            "objectId": "D01D6FA3-C303-4393-89DE-5D9E0153FE27",
            "status": 2
        },
        "objectId": "2E492A60-42EE-4355-936B-7B570EE004D5",
        "slug": null,
        "image": null,
        "engineModel": null,
        "images": null,
        "types": [
            {
                "created": 1646171989645,
                "nameFr": "Bateau à moteur",
                "___class": "BoatTypes",
                "nameEn": "Powerboat",
                "ownerId": null,
                "updated": 1646735523563,
                "objectId": "2FDCEAF3-9FEA-4A44-9340-2D327AD56E9B",
                "slug": "powerboat",
                "status": 2,
                "order": 1
            },
            {
                "created": 1646172030319,
                "nameFr": "Multicoque",
                "___class": "BoatTypes",
                "nameEn": "Multihull",
                "ownerId": null,
                "updated": 1646735523578,
                "objectId": "ADE41F79-D929-4093-ABF9-175D47637DD1",
                "slug": "multihull",
                "status": 2,
                "order": 3
            },
            {
                "created": 1646172009719,
                "nameFr": "Voilier",
                "___class": "BoatTypes",
                "nameEn": "Sailboat",
                "ownerId": null,
                "updated": 1646735523591,
                "objectId": "F056FB4F-3835-42B5-9F89-2AAA53328C92",
                "slug": "sailboat",
                "status": 2,
                "order": 2
            }
        ],
        "fuelTank": null,
        "draftMin": null,
        "created": 1645050160754,
        "nbBuilt": null,
        "designer": null,
        "image_src": null,
        "ballast": null,
        "yearLastBuilt": null,
        "name": "Tandem Island",
        "updated": 1646735523467,
        "loa": null,
        "status": 2,
        "sailArea": null,
        "hullType": null,
        "ballastType": null
    },
    "updated": 1648134846,
    "objectId": "D51DD75F-0EB9-4BBB-9349-2EC74562EB06",
    "status": 2
}

Hello @Nicolas_REMY

Unfortunately, I have not been able to reproduce this problem in my application. Can you please tell me if I can reproduce the problem in your application? Can you create a test page for us with logic that reproduces this problem and specify APP ID?

Regards,
Inna

Hi @Inna_Shkolnaya ,

On my side, I confirm that this happens consistenty and can be reproduced each time in my application (ID D7075715-5086-625A-FFAB-39C2F40FB200).

For your ease of use, I have created a test page and made it the home page. It is called ‘T1-test-page’, but the logic pictured above is in function ‘saveBoatData’, which is called from within a component called ‘TopNavbar’. To get the error, simply change any data field (such as the last one, it’s test data anyway, so feel free), and then click on the save icon top right.

Thank you @Nicolas_REMY for sharing this with us, I was able to reproduce the issue.

I’ve created a test page testBL in your container

  1. if use your provided boat object there are no issues

  2. if put it into the PageData and then get it there is the issue

  3. so, this is completely a bug on our side, when any object goes into the PageData it converts into a ReactiveDataStore and this is the reason why it doesn’t work in a transaction. As a workaround, I can propose you convert it back into a plain object before passing it into a transaction

Regards, Vlad

I @vladimir-upirov , thanks for testing and for the detailed reply. Got it about the workaround, and will implement this.
Do I understand correctly that you will fix this down the road and that this is intended to be a temporary workaround ? Or is this the way to go forward for the foreseeable future ?

Thanks.

Yes, it will be fixed as soon as possible and then you can remove the workaround, the ticket’s number for reference is BKNDLSS-28008

1 Like

Hello @Nicolas_REMY

We’ve just updated cloud servers with a fix for the issue you described above. Could you kindly let us know whether fix works for you well?

Regards,
Inna