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é 



Reply
  • 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é 



Children
  • Thank you for looking into this Andre,


    I don't have any custom EPAM, we use LDAP if that makes a difference.

    in TST and DEV the file system permissions to modules/Connectors are set the same.

    I also checked the custom/modules/Connectors and permissions are the same in DEV and TST.

    I am doing a complete diff of the two system's files... I'll let you know what I find.

    Thanks,
    Francesca

  •   

    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