i2b2 1.8.2 Upgrade Issue - Unable to Login (PM Cell Down / cellURL Error)

53 views
Skip to first unread message

Meghal Gandhi

unread,
Apr 22, 2026, 5:56:24 PMApr 22
to i2b2 Install Help
Hi,

I am currently upgrading i2b2 from version 1.7.12a to 1.8.2 using the official upgrade instructions provided on the i2b2 website. I am doing it for my institute based in Los Angeles, California.

At this point, I am unable to log in to the i2b2 webclient. The application consistently shows an error indicating that the PM cell is down or that the properties file should be checked.

Here is what I am observing:

  • All cells (PM, CRC, ONT, WORK) appear to deploy successfully in WildFly.

  • Data sources are configured and connections to SQL Server are working.

  • Login attempts are reaching the backend, and session entries are being created in the PM_USER_SESSION table. I can also see PM_USER_LOGIN table with success entries.

  • However, the webclient does not proceed past login and throws errors.

I have been troubleshooting extensively but have not been able to identify the root cause. WildFly logs are not showing any relevant errors related to this issue, which is making it difficult to pinpoint what might be going wrong.

Additionally, from the browser developer tools, I am seeing errors related to the PM cell configuration (e.g., cellURL not being recognized), which suggests a possible issue in how the webclient is resolving the PM endpoint after authentication.

For your reference, here is more details:

  • Screenshots of the error message

  • i2b2_errors_4.png

  • Browser developer tools (console and network) screenshots:

  •   i2b2_errors_1.pngi2b2_errors_2.pngi2b2_errors_3.png

  • Relevant configuration snippets: i2b2_config_domains.json:

  • {
      "urlProxy": "proxy.php",
      "urlFramework": "js-i2b2/",
      "lstDomains": [
        { "domain": "i2b2cdu",
          "name": "i2b2_CDU_Test",
          "urlCellPM": "<server_ip_port>/i2b2/services/PMService/",
          "allowAnalysis": true,
          "ignorePasswordMgrs": true,
          "debug": true
        }
      ],
      "loginTimeout": 5
    }

Environment details:

  • i2b2 version: 1.8.2

  • Application server: WildFly 37

  • Database: SQL Server

  • Webclient hosted via IIS on Windows VM

Currently, IIS, wildfly and SQL Server are in the same windows VM.

I would really appreciate any guidance or suggestions on how to resolve this issue.

Thank you for your time and support.

Best regards,
Meghal Gandhi

mabaj...@mac.com

unread,
Apr 23, 2026, 5:27:33 AMApr 23
to i2b2 Install Help
Hello, Meghal,

We know that your PM Cell is not down, because you have confirmed that it is recording the logins. There may be a cellURL error in your configuration.

In my experience, the most common place where the PM URL is missing is in the proxy.php file in the webclient. In that file, around lines 40-60, you will see settings for pmURL, WHITELIST, and BLACKLIST. You may need to update these items. 

Since your webclient is running on IIS on your WildFly host,  the only part of pmURL that may need updating may be the port number.

But since your i2b2_config_domains.json file names a <server-ip+port>, that entry should be added to the WHITELIST and BLACKLIST settings. Whatever WHITELIST/BLACKLIST shows for "127.0.0.1:8080," just repeat those settings for your fqdn-or-ip and port (that is, whatever you are using in your i2b2_config_domains.json).
 
I'm not certain that you require any changes in proxy.php, but that would be a good place to look.

Also, if/when you are using https for your WildFly connection, you will want to update these settings to reflect that in your proxy.php and your i2b2_config_domains.json.

Please let us know if this is helpful.

Kind regards,

Mark Abajian

Abajian Consulting, LLC
P.O. Box 8017, Glendale, CA  91224

Meghal Gandhi

unread,
Apr 24, 2026, 6:21:11 PMApr 24
to i2b2 Install Help
Hi Mark,

Thanks for your response.

I am currently testing with localhost only. So I have this in my domain json file:   

Below is the content from proxy.php:
$pmURL = "http://localhost:9090/i2b2/rest/PMService/getServices";
$pmCheckAllRequests = false;

$WHITELIST = array(
    "http" . (($_SERVER['SERVER_PORT'] == '443') ? 's' : '' ) . "://" . $_SERVER['HTTP_HOST'],
    "http://services.i2b2.org",
    "http://127.0.0.1:9090",
    "http://127.0.0.1:8080",
    "http://127.0.0.1",
    "http://localhost:8080",
    "http://localhost:9090",
    "http://localhost"
);

$BLACKLIST = array(
    "http://127.0.0.1:9090/test",
    "http://localhost:9090/test"
);


In short, I have entries already in proxy.php file. So I am not able to understand why it is still failing?

Thanks.

Best,
Meghal

Meghal Gandhi

unread,
Apr 30, 2026, 6:50:43 PMApr 30
to i2b2 Install Help
After tons of troubleshooting efforts and trying multiple approaches after our meeting, I was finally able to successfully log in to i2b2 version 1.8.2. 

I am providing my findings below in case someone gets stuck in similar issues.  

I did in-depth debugging of many core I2b2 web client files: i2b2_cell_communicator.js, PM_ctrlr.js. First I found the parsing location code lines in PM_ctrlr.js file and print the parsed response, that's where I found issues. Mainly I print the parsed "data" to console to get the root cause under i2b2.PM._processUserConfig = function (data) in PM_ctrlr.js file after line 270 (i2b2.PM.removeLoginDialog();):

// Debug console.log("PM login response data:", data);
Summary of the issue:
  • The PM cell was actually working correctly.
  • Login requests were reaching the backend and entries were being created in the database.
  • However, the webclient was failing after login with errors: "PM cell down".
Root cause:
  • The issue was in the proxy.php file used by the webclient.
  • PHP warnings (e.g., undefined array keys like query, port, and an undefined variable $pmCheckAllRequests) were being printed in the response.
  • These warnings were appearing before the XML response from the PM service, which corrupted the XML response.
    • Example of the response being returned:
    • Warning... Warning... <?xml version="1.0"?> <ns2:response>...</ns2:response>
  • As a result, the i2b2 webclient was unable to parse the XML response properly and failed during login.
  • I believe newer PHP versions are stricter and surface these warnings (e.g., undefined array keys) more explicitly, which contributed to this issue. My PHP version is 8.2.9.
Fix applied:
  • Suppressed PHP warnings from being displayed in the response by adding the following at the top of proxy.php:
    error_reporting(E_ALL & ~E_WARNING & ~E_NOTICE & ~E_DEPRECATED); ini_set('display_errors', 0); ini_set('log_errors', 1); $pmCheckAllRequests = false; // Make it global
  • After this change, the response returned clean XML, and the login worked as expected.
Best,
Meghal Gandhi


akval...@gmail.com

unread,
May 6, 2026, 4:06:40 PMMay 6
to i2b2 Install Help
I am having similar issues. Your fix did solve the initial problem. However, now we have a new issue. This is in the wildfly log, however we do not use port 8080. I've updated the values in the pm_cell_data to the appropriate ports and correctly set the value in the i2b2_config_domains.json 

Error from log:
Unable to send to url[http://localhost:8080/i2b2/services/PMService/getServices]

Is there some other location that needs to be updated? For the record, I am upgrading from a working 1.8.1 set up.

Thanks,

Andrew

mabaj...@mac.com

unread,
May 6, 2026, 6:18:09 PMMay 6
to i2b2 Install Help
Hello, Andrew,

You say "Your fix did solve the initial problem." But it's not clear whether you are talking about the fix proposed by Meghal or by me.

Have you checked the settings in the proxy.php file in the "webclient" folder? That's another place where port 8080 typically shows up.

You can also search for "8080" in the webclient folder and in the wildfly folder.

Let us know if this helps.

Kind regards,

Mark Abajian

Abajian Consulting, LLC
P.O. Box 8017, Glendale, CA  91224


akval...@gmail.com

unread,
May 7, 2026, 8:49:20 AMMay 7
to i2b2 Install Help
It was the fix provided by Meghal. But that doesn't explain why the application is trying to find PM services on port 8080, and not the port in my configuration.

Meghal Gandhi

unread,
May 8, 2026, 4:04:56 PMMay 8
to i2b2 Install Help

Hi Andrew,

Your current issue looks like a separate configuration/path issue where something is still pointing to the old default port 8080.

One place I would strongly recommend checking is the proxy.php file in the webclient. In my setup, there was a $pmURL setting near the top of that file. If it still has something like:

$pmURL = "http://localhost:8080/i2b2/services/PMService/getServices";

then it should be updated to the correct WildFly port, for example:

$pmURL = "http://localhost:9090/i2b2/services/PMService/getServices";


Also confirm that i2b2_config_domains.json has the correct PM URL, for example:

"urlCellPM": "http://localhost:9090/i2b2/services/PMService/"

 

In addition to pm_cell_data, I would search the database for any remaining 8080 references, for example:

SELECT * FROM PM_CELL_DATA WHERE URL LIKE '%8080%';

You may also want to check whether the browser is still using a cached version of the config file. I had to use DevTools → Network → Disable cache, or test in an Incognito window.


One more thing to confirm is that the web server is serving the same webclient folder that you are editing. You can directly open the JSON file in the browser and verify that the updated port is actually being loaded.

So I would check in this order:

  1. proxy.php $pmURL

  2. i2b2_config_domains.json

  3. Any remaining 8080 references in PM tables

  4. Browser cache / wrong webclient folder being served

In my case, once the proxy and JSON were aligned with the correct WildFly port, the PM request started going to the correct endpoint.

Hope this helps!

Best,

Meghal


akval...@gmail.com

unread,
May 11, 2026, 11:30:25 AMMay 11
to i2b2 Install Help
Meghal,

Thanks, but I have done all those things already. The hardcoded $pmURL was the unobvious fix, but I did change it. It still doesn't work. I have the browser cache disabled as well, since that is usually the first thing I have to do to get a new webclient to work anyway. 

-Andrew Vallejos
Message has been deleted

akval...@gmail.com

unread,
May 11, 2026, 12:26:18 PMMay 11
to i2b2 Install Help
I've updated the urls in the hive_params to use port 28080, but this version of i2b2 just appends my parameters to the url. We have a 4 working versions of i2b2 version 1.8.1, none of them using port 8080. So I know this is specifically a problem with version 1.8.2. It seems like somewhere localhost:8080 is hardcoded... guess I will spelunk through the Java...

mabaj...@mac.com

unread,
May 14, 2026, 3:42:13 PMMay 14
to i2b2 Install Help
Hello, Andrew,

You mentioned that you updated the URLs in the HIVE_CELL_PARAMS, but you were still seeing the error with references to port 8080. You probably already know this, but here is a reminder for others who may encounter this type of problem: after updating any entries in the HIVE_CELL_PARAMS, you must restart WildFly for the changes to take effect. 

Kind regards,

Mark Abajian

Abajian Consulting, LLC
P.O. Box 8017, Glendale, CA  91224


Reply all
Reply to author
Forward
0 new messages