URGENT HELP NEEDED: "sObject type 'CurrencyType' is not supported" on Customer Community

  • 1
  • Problem
  • Updated 4 years ago
  • Solved
Archived and Closed

This conversation is no longer open for comments or replies and is no longer visible to community members. The community moderator provided the following reason for archiving: Problem resolved through patch 6.7.1

Last night Salesforce upgraded our site to Multi-currency.  Today we find none of our customers can submit support cases on our Salesforce/Skuid based Customer Community.  It appears that CurrencyType is not allowed on that license level (Customer Community) and that Skuid is looking up that value and failing.

Our customers only receive a VisualForce page error.  Our partners on the other hand, who have a Partner license, can access the very same community and have no problems at all.

The APEX log looks like this:

Object type 'CurrencyType' is not supported.
31.0 APEX_CODE,DEBUG;APEX_PROFILING,INFO;CALLOUT,INFO;DB,INFO;SYSTEM,DEBUG;VALIDATION,INFO;VISUALFORCE,INFO;WORKFLOW,INFO
19:13:58.057 (57988385)|SOQL_EXECUTE_BEGIN|[486]|Aggregations:0|select Id, skuid__Use_Standard_Layouts__c, skuid__Page__c, skuid__Page__r.skuid__Module__c, skuid__Page__r.Name from skuid__Page_Assignment__c where (skuid__SObject_Type__c = :tmpVar1 and (skuid__Context__c = :tmpVar2 or skuid__Context__c = :tmpVar3 or skuid__Context__c = null) and (skuid__RecordTypeDeveloperName__c = :tmpVar4 or skuid__RecordTypeDeveloperName__c = null) and skuid__Action_Type__c = :tmpVar5 and skuid__IsActive__c = true) order by skuid__RecordTypeDeveloperName__c nulls last, skuid__Context__c nulls last, skuid__Use_Standard_Layouts__c desc, skuid__Page__r.skuid__Module__c limit 1
19:13:58.065 (65141815)|SOQL_EXECUTE_END|[486]|Rows:1
19:13:58.066 (66704213)|SOQL_EXECUTE_BEGIN|[460]|Aggregations:0|select Id, Name, skuid__Module__c, LastModifiedDate, skuid__Type__c, skuid__Layout__c, skuid__Layout2__c, skuid__Layout3__c, skuid__Layout4__c, skuid__Layout5__c from skuid__Page__c where Id = :tmpVar1
19:13:58.070 (70616968)|SOQL_EXECUTE_END|[460]|Rows:1
19:13:58.129 (129780242)|SOQL_EXECUTE_BEGIN|[3979]|Aggregations:0|select Profile.UserLicense.LicenseDefinitionKey from User where Id = '00570000003Pa6nAAC' limit 1
19:13:58.140 (140398095)|SOQL_EXECUTE_END|[3979]|Rows:1
19:13:58.178 (153888938)|CUMULATIVE_LIMIT_USAGE
19:13:58.178|LIMIT_USAGE_FOR_NS|(default)|
  Number of SOQL queries: 0 out of 100
  Number of query rows: 0 out of 1000000
  Number of SOSL queries: 0 out of 20
  Number of DML statements: 0 out of 0
  Number of DML rows: 0 out of 0
  Maximum CPU time: 0 out of 10000
  Maximum heap size: 0 out of 6000000
  Number of callouts: 0 out of 100
  Number of Email Invocations: 0 out of 0
  Number of future calls: 0 out of 50
  Number of queueable jobs added to the queue: 0 out of 50
  Number of Mobile Apex push calls: 0 out of 10
19:13:58.178|LIMIT_USAGE_FOR_NS|skuid|
  Number of SOQL queries: 3 out of 100
  Number of query rows: 3 out of 1000000
  Number of SOSL queries: 0 out of 20
  Number of DML statements: 0 out of 0
  Number of DML rows: 0 out of 0
  Maximum CPU time: 0 out of 10000
  Maximum heap size: 0 out of 6000000
  Number of callouts: 0 out of 100
  Number of Email Invocations: 0 out of 0
  Number of future calls: 0 out of 50
  Number of queueable jobs added to the queue: 0 out of 50
  Number of Mobile Apex push calls: 0 out of 10
19:13:58.178|CUMULATIVE_LIMIT_USAGE_END

There is little information in there to work with, as I don't see the CurrencyType in the SOQL statements that are logged.

This feels like somehow Skuid needs to check the license, and if Customer Community to no longer require CurrencyType?   But I'm not 100% of what is happening here.

But we are hard down, and we operate a 24x7 call center with tons of tickets and this is a massive outage for us.  Any help you can provide would be greatly appreciated.

- Chris

Photo of Chris

Chris

  • 1,632 Points 1k badge 2x thumb

Posted 4 years ago

  • 1
Photo of Moshe Karmel

Moshe Karmel, Champion

  • 8,686 Points 5k badge 2x thumb
What does the JavaScript console look like? CTRL Shift J in chrome...
Photo of Chris

Chris

  • 1,632 Points 1k badge 2x thumb
Hi Moshe ... thanks for jumping in.

The error is a VisualForce page, as in...



In the JS/browser console, there is nothing of interest...



since there is no Skuid running.

The error log was from SFDC "Debug Logs" - tracing on a Customer Community licensed user, and the error is an APEX (server side) error - hence the 500 error.

I'm thinking this is going to require some code changes from Skuid on the APEX side, since I know they automatically lookup the CurrencyType when multi-currency is enabled for many objects, and I'll bet they are looking up the CurrencyType on the User object to get the users default currency...?

- Chris
Photo of Moshe Karmel

Moshe Karmel, Champion

  • 8,686 Points 5k badge 2x thumb
Does it work if you turn off the page assignment and just let the classic salesforce view load?
Photo of Chris

Chris

  • 1,632 Points 1k badge 2x thumb
I'm not easily able to try that, because we don't actually redirect pages using objects right away in the community ... we use native Skuid pages and direct reference them in order to provide an initial experience that isn't just a particular object list or object record.  

However, I have confirmed that the CurrencyType object indeed is NOT allowed to be accessed from the customer community (they don't mention that in the license page, but I found it here: https://developer.salesforce.com/docs/atlas.en-us.api.meta/api/sforce_api_objects_currencytype.htm).

Sure feels like an APEX change is required here ... test not only if Multi-Currency is enabled, but also if the license type allows accessing it.
Photo of Rob Hatch

Rob Hatch, Official Rep

  • 44,678 Points 20k badge 2x thumb
Chris. 

I know the devs at Skuid have been alerted and will probably be getting back to you soon (Late on a Saturday night...) but I wonder if there is not a temporary workaround.  My understanding is that Skuid looks for the CurrencyType object for MultiCurrency orgs whenever it encounters a currency field.  Could you replace any currency fields in those case pages with number fields on a temporary basis?

This is shooting in the dark - but sometimes those shots land, and I want to send you anything I can in a tough moment. 
Photo of Chris

Chris

  • 1,632 Points 1k badge 2x thumb
Rob - yes, Will is helping right now.  I've granted him rights to SFDC, created an account on our web site, mapped it into Salesforce, and verified he can reproduce the failure ... so I think you guys are enabled to take a look at this.  

In our case, none of the objects we present to the community have any currency in them.  This failure appears to be happening very early on ... I'm guessing when loading the default CurrencyType based on the User object (I'm saying that because the logs seem to indicate that this is part of Page Assignment logic).  But thanks for the idea and help!

And if I haven't said it enough ... you guys are simply amazing.  Product is awesome, support is over the top.  Even in the midst of an ugly outage, my committment, passion and respect hasn't wavered in the slightest.

- Chris
Photo of Zach McElrath

Zach McElrath, Employee

  • 52,236 Points 50k badge 2x thumb
Chris,

Sent you an email privately, but we have resolved this issue in patch 6.7.1 of Skuid, which is in your org.

For any others reading this, the fix will be included in our Superbank Production push this Friday (1/19/2015).

Regards,

Zach
Photo of Chris

Chris

  • 1,632 Points 1k badge 2x thumb
We have confirmed that this problem is resolved.  Thank you all so much for your help.

For others ... the team at Skuidify have been amazing...  I was working with them late Saturday night, had communications with their CTO/VPE on Sunday and as you can now see, a fix deployed before Noon on Monday.  

Amazing.  Simply amazing. 

Thank you all.

- Chris
Photo of Rob Hatch

Rob Hatch, Official Rep

  • 44,678 Points 20k badge 2x thumb
Thank you for your kind words.  I'm just glad we could get it fixed before you had to go to some back up plan. 

This conversation is no longer open for comments or replies.