Issue with re-creating a Big Object with the same API Name

As part of a POC, someone had created a big object called StatusTracking__b. After a few stuff-ups they ended up keeping StatusTracking3__b in the system.

The time has come for things to get refactored and I thought I’d go back and use a proper API name for this object, so I tried to deploy a new metadata definition for StatusTracking__b. The platform complained with:

objects/StatusTracking__b.object — Error: That object name is already
in use.

I have gone through all things – metadata API, enterprise WSDL, describes, SOQL queries and I can assure you that this object does not exists – at least form my perspective.

Schema.getGlobalDescribe().get('StatusTracking__b').getDescribe();

System.NullPointerException: Attempt to de-reference a null object

To confirm this I created a brand new big object Boris__b and also created a bunch of records. Then I deleted this object (and erased it). Second time around I was able to deploy the metadata definition using the same API name Boris__b without any issues.

Is this an intermittent bug with big objects or is there something that I could be missing? Where else could the object name be used, without the actual definition (object doesn’t exist)?

Answer

Apparently, this works as expected. Salesforce support came back with an answer that the prefix of the object name (the API name before the __) must be unique across any object types (custom, big, platform events etc.).

To verify this I tried creating a big object and a platform even that had the same prefix as one of my other custom objects, and I got the same error.

Lesson learned the hard way – keep your object names unique across all different types.

Attribution
Source : Link , Question Author : Boris Bachovski , Answer Author : Boris Bachovski

Leave a Comment