Users runs in BWC in v14 upgrade, but not always, and EPAM error problems

When I upgraded to v12 Enterprise the Users module was still in BWC

When I upgraded my DEV environment to v14 it remained BWC from the menu but when I change the URL it works fine in Sidecar.

When I upgraded my TST environment to v14 it converted to Sidecar but the record view gives an odd 500 error with the following in the PHP log:

[15-Jan-2025 12:15:16 US/Central] PHP Fatal error:  Uncaught Error: Call to a member function setEAPM() on null in /var/www/html/sugarcrm/include/externalAPI/Base/ExternalAPIBase.php:182
Stack trace:
#0 /var/www/html/sugarcrm/include/externalAPI/Base/ExternalAPIBase.php(212): ExternalAPIBase->getConnector()
#1 /var/www/html/sugarcrm/include/externalAPI/Dnb/ExtAPIDnb.php(92): ExternalAPIBase->getConnectorParam()
#2 /var/www/html/sugarcrm/include/externalAPI/Dnb/ExtAPIDnb.php(87): ExtAPIDnb->loadConnectionCredentials()
#3 /var/www/html/sugarcrm/include/externalAPI/ExternalAPIFactory.php(114): ExtAPIDnb->__construct()
#4 /var/www/html/sugarcrm/include/externalAPI/ExternalAPIFactory.php(177): ExternalAPIFactory::loadFullAPIList()
#5 /var/www/html/sugarcrm/modules/EAPM/clients/base/api/AuthApi.php(94): ExternalAPIFactory::loadAPI()
#6 /var/www/html/sugarcrm/modules/EAPM/clients/base/api/AuthApi.php(58): AuthApi->getExternalApi()
#7 /var/www/html/sugarcrm/include/api/RestService.php(320): AuthApi->getAuthInfo()
#8 /var/www/html/sugarcrm/clients/base/api/BulkApi.php(68): RestService->execute()
#9 /var/www/html/sugarcrm/include/api/RestService.php(320): BulkApi->bulkCall()
#10 /var/www/html/sugarcrm/api/rest.php(26): RestService->execute()
#11 {main}
  thrown in /var/www/html/sugarcrm/include/externalAPI/Base/ExternalAPIBase.php on line 182
[15-Jan-2025 12:15:16 US/Central] PHP Fatal error:  Uncaught Error: Call to a member function setEAPM() on null in /var/www/html/sugarcrm/include/externalAPI/Base/ExternalAPIBase.php:182
Stack trace:
#0 /var/www/html/sugarcrm/include/externalAPI/Base/ExternalAPIBase.php(212): ExternalAPIBase->getConnector()
#1 /var/www/html/sugarcrm/include/externalAPI/Dnb/ExtAPIDnb.php(92): ExternalAPIBase->getConnectorParam()
#2 /var/www/html/sugarcrm/include/externalAPI/Dnb/ExtAPIDnb.php(87): ExtAPIDnb->loadConnectionCredentials()
#3 /var/www/html/sugarcrm/include/externalAPI/ExternalAPIFactory.php(114): ExtAPIDnb->__construct()
#4 /var/www/html/sugarcrm/include/externalAPI/ExternalAPIFactory.php(177): ExternalAPIFactory::loadFullAPIList()
#5 /var/www/html/sugarcrm/modules/EAPM/clients/base/api/AuthApi.php(94): ExternalAPIFactory::loadAPI()
#6 /var/www/html/sugarcrm/modules/EAPM/clients/base/api/AuthApi.php(58): AuthApi->getExternalApi()
#7 /var/www/html/sugarcrm/include/api/RestService.php(320): AuthApi->getAuthInfo()
#8 /var/www/html/sugarcrm/clients/base/api/BulkApi.php(68): RestService->execute()
#9 /var/www/html/sugarcrm/include/api/RestService.php(320): BulkApi->bulkCall()
#10 /var/www/html/sugarcrm/api/rest.php(26): RestService->execute()
#11 {main}
  thrown in /var/www/html/sugarcrm/include/externalAPI/Base/ExternalAPIBase.php on line 182

Any thoughts on what is happening?

When I force my DEV to non-BWC it works just fine.

Why the inconsistent behavior between two upgrades of what are essentially identical clones of my PRD environment?

I do have a couple of custom fields in the Users module but that should not be a problem.

Thanks,

FrancescaS

Parents
  • Hello  , 

    This is a rather unusual error, to be honest.

    To investigate and attempt to reproduce the behavior, I set up a similar environment.

    Since the issue appears to be related to EAPM , here’s what I did:

    1. Initial Setup: I started with a clean 12.0.4 instance and added a custom EAPM by creating a custom file
    custom/include/externalAPI/TestService/ExtAPITestService.php

    2. EAPM Table Entry: I manually added an entry for my admin user in the eapm table to simulate the conditions I believe you have on your instance. 

    3. Upgrade Path: I followed the recommended upgrade path using the silent upgrader:

    12.0.4 > 12.0.5 > 13.0.3 > 13.0.4 > 14.0.1

    All the upgrades ran smoothly, and the Users module renders correctly in Sidecar without any errors like the one you described.


    With that, it's hard to know what is causing the error on your side. 


    After this, I went and searched if we had older reports of the error: 

    [15-Jan-2025 12:15:16 US/Central] PHP Fatal error: Uncaught Error: Call to a member function setEAPM() on null in /var/www/html/sugarcrm/include/externalAPI/Base/ExternalAPIBase.php:182

    I did encounter a similar issue once, where a customer was missing the default modules/Connectors folder from their instance.

    Since you mentioned that this error only occurs in the TST environment, while the filesystem should be identical to DEV, it makes me wonder if this could be a permissions mismatch issue. It’s possible that Sugar is unable to properly access the modules/Connectors folder due to incorrect permissions, or perhaps something in the permission setup was disrupted during the upgrade?

    This is a long shot, but at this stage, it’s the only explanation that comes to my mind.

    Let me know if you’ve checked folder permissions or if there are other differences between TST and DEV (perhaps on the users table?) that might be worth investigating.

    I hope this helps and keep us posted. 

    Cheers, 

    André 



  •   

    I found the issue with my EPAM error: The following directories are in DEV but not TST:

    modules/Connectors/connectors/formatters/ext/rest/dnb

    modules/Connectors/connectors/sources/ext/rest/dnb

    I coped those directories from DEV to TST and TST no longer has that EPAM error.


    I hope this helps you with your EPAM problems.

    --

    From my side,

    I still don't understand why DEV is still redirecting to BWC.

    Not only that,  the diff shows a number of other core files/folders that are in DEV but not TST, I don't quite understand why.

    One big difference in the upgrade from v12 to v14:

     DEV I ran Rector between v13 and v14 upgrades, in TST I forgot that step and ran it after v14 upgrade, would that make a significant difference?

    --

    Some examples of files/directories that are only in DEV:

    Only in DEV/var/www/html/sugarcrm/modules/Administration/views: view.configureajaxui.php

    Only in DEV/var/www/html/sugarcrm/modules/Calendar/clients/base/layouts: records

    Only in DEV/var/www/html/sugarcrm/modules/Campaigns: MailMerge.php

    Only in DEV/var/www/html/sugarcrm/modules/Cases/clients/portal/filters: case

    Only in DEV/var/www/html/sugarcrm/modules/Cases/dashboards: multi-line

    Only in DEV/var/www/html/sugarcrm/modules/ContractTypes/clients/base/layouts: records

    Only in DEV/var/www/html/sugarcrm/modules/Dashboards/clients/base/layouts/dashboard: dashboard-empty.hbs

    Only in DEV/var/www/html/sugarcrm/modules/Dashboards/clients/base/views: massupdate

    Only in DEV/var/www/html/sugarcrm/modules/DocumentRevisions/clients/base/layouts: records

    Only in DEV/var/www/html/sugarcrm/modules/Documents/clients/base/layouts: records

    Only in DEV/var/www/html/sugarcrm/modules/Forecasts/clients/base/views: help-dashlet

    Only in DEV/var/www/html/sugarcrm/modules/Home: TrainingPortal.php

    Only in DEV/var/www/html/sugarcrm/modules/Home: TrainingPortal.tpl

    Only in DEV/var/www/html/sugarcrm/modules/Home/clients/base/layouts/console-side-drawer: console-side-drawer.hbs

    Only in DEV/var/www/html/sugarcrm/modules/Home/clients/base/views: help-dashboard-headerpane

    Only in DEV/var/www/html/sugarcrm/modules/Home/clients/base/views: search-help-dashboard-headerpane

    Only in DEV/var/www/html/sugarcrm/modules/InboundEmail: EditGroupFolder.php

    --

    Thanks,

    FrancescaS

  • Hello  , 

    I’ve been reflecting on this, and it’s possible that if you ran the rector only after upgrading to version 14, there might still have been non-compatible PHP 8.2 code in place at the time of the upgrade.

    This could potentially explain the discrepancy you’re encountering in TST.
    If this was indeed the case, I’d expect some errors to be logged in one of the following: the upgrade log, the php error log or the sugarcrm.log that would be present only in TST.



  • It's possible that I messed up TST, but that does not explain why in DEV, where I did things in the right order, the Users module runs in BWC.

  • Hi  , 

    You are correct; I misread your description and mistakenly believed that both issues were occurring in TST. I agree that this is a legitimate concern that could be addressed through a support case. This would allow you to share a backup of the instance, enabling an engineer to troubleshoot the issue locally.

Reply Children
No Data