function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
dev_kcb_hbmdev_kcb_hbm 

No error returned when creating a lead on an account that has exceeded maximum storage

*Note before replying that I have opened a support case, and thus far customer service has been thoroughly unhelpful

 

Using the Salesforce IOS toolkit I created an iPad application which allows users to enter Leads into Salesforce.  Everything seemed to be working fine, so a customer started using it in the field this past weekend with disastrous results.

 

The customer created approximately 3500 leads, and apparently they ran out of storage after around 2600.  However the toolkit (and probably the API under the hood) never returned an error, and now they want to know where their other 900 leads went.

 

So here are my questions:

 

1) Are those 900 leads absolutely gone forever, or are they recoverable from the server logs or something?

2) Since when is there a storage limit on a developer account (the account they were putting leads into) and what exactly is it?

3) Can the per user storage limit be raised or is the only way around the limit to have multiple users

4) Is this a known IOS toolkit/API bug (no error on storage exceeded) or do I need to file one, etc.

 

Any help is appreciated.

 

Thanks,

Adam

 

 

Best Answer chosen by Admin (Salesforce Developers) 
SuperfellSuperfell

1) Yes (and BTW, the toolkit you are using is calling the SOAP api, not the REST api, but in either case, if the data doesn't make it to the DB, and you don't have it at the client app any more, its gone, its not in any server log file, the log contains data about the fact that an api call was made and by who etc, but the actual raw data passed in is not logged)

 

2) Older DE orgs had smalller limits, so it may depend on when exactly it was signed up.

 

4) The create call can take upto 200 rows of data at once, and in general they are processed individually, so you need a per row status, rather than an overall single ok/error response, hence the array.

 

 

All Answers

SuperfellSuperfell

The API returns a SaveResult for each call to create, this should get passed through to the calling code from whichever toolkit you're using, are you checking this returned SaveResult objects ? Can you post some code ? (a link to the specific toolkit you're using would help as well)

 

1) they're no where on the server side.

2) since storage limits have existed (at least 7 years), last i checked it was 10Mb for a newly created DE org. 

3) the storage limit is per org, not per user. You can use an edition that includes more storage (i'm not sure you should be using a DE account for production data).

4) There no known API bug for this, you would have to check the github/google code issues list for the particular toolkit you're using.

dev_kcb_hbmdev_kcb_hbm

Here's the toolkit I'm using:  http://wiki.developerforce.com/index.php/Getting_Started_with_the_Force.com_Toolkit_for_iOS

 

Here's the code I was using for the callback function. As you can see I was ignoring the "results" variable and relying purely on the error variable to tell me if something went wrong, and the context variable to identify which particular insert this result pertained to:


- (void)leadSaveResults:(NSArray *)results error:(NSError *)error context:(id)context
{

    NSLog(@"%@", [results description]); // --> this line added after reading your reply, and produces the output below
    [delegate createResult:context error:error];
}

 

Sure enough when printed to the console as above the results variable looks like:

"STORAGE_LIMIT_EXCEEDED - storage limit exceeded"

 

As for my questions/your answers:

 

1) Are you sure it doesn't exist *at all*? Maybe in some not so easily digestible format?  For example I run a few websites which offer Rest-based API's and absolutely every call to those API's is recorded in an Apache or Nginx log.

 

2) This particular DE org has only 5 MB of data space (20 MB of file space -- which of coarse doesn't help).  I checked some of my other DE org's and they have 20MB of data space.  Don't know why this one is so low...

 

3) I agree about the fact that a DE org shouldn't be used for production data -- this was a last minute bandaid to fix a different screw up.  The account rep they talked to was apparently unaware (as was I) that API access was limited to Enterprise and Unlimited accounts.  So they signed up for a "Contact Manager" account (which interestingly enough has 1GB of data storage space), and I had only a few minutes before their event to "fix" this oversight by creating a DE org for them and changing the app to use it.

 

4) I guess it's not a bug per se.  But I do find it strange that this is not an *error*, and is instead tucked away in the results variable.

 

Thanks,

Adam

SuperfellSuperfell

1) Yes (and BTW, the toolkit you are using is calling the SOAP api, not the REST api, but in either case, if the data doesn't make it to the DB, and you don't have it at the client app any more, its gone, its not in any server log file, the log contains data about the fact that an api call was made and by who etc, but the actual raw data passed in is not logged)

 

2) Older DE orgs had smalller limits, so it may depend on when exactly it was signed up.

 

4) The create call can take upto 200 rows of data at once, and in general they are processed individually, so you need a per row status, rather than an overall single ok/error response, hence the array.

 

 

This was selected as the best answer
dev_kcb_hbmdev_kcb_hbm

Thanks,

Adam

Kumar Saurav 10Kumar Saurav 10
Are you Looking for large file Storage in Salesforce..?
We got a solution for you…!

Here you may be interested in knowing about appexchange native app Cloud Drop which is having this feature.

For more details check:
http://www.clouddrop.io

Check Out the following URL for application:
https://appexchange.salesforce.com/listingDetail?listingId=a0N30000003IzEDEA0