So, here are some more details for this question ...
I have two systems from two different suppliers that are proprietary. We will call them System A and System B. Both systems function as standalone objects, but System B provides some additional and very specific functions that are not available in System A. The System B provider integrates with System A at a fairly basic level (System B integrates with other supplier systems similar to system A in the same market). While system B is a php-based application, system A is not. The integration method looks something like this:
System B exports a structured control file (also known as a text file) containing various parameter / value pairs. System A is designed to import a control file into system A. System A takes data in a control file, combines it with some of its own data, and creates a URI. This URL is presented as a link to the user on the corresponding page in System A. This is a URI that contains a double '?' in the query string. The same URI contains what I can only describe as feedback URIs (a specific URI in system A to receive data from system B, forming a bi-directional communication).
Thus, the user action, clicking the link, performs the following:
Step 1: system A transfers a series of parameters and values ββto system B in the query string in file.php.
Step 2: system B receives data from system A, performs some verification and what is not, writes some information to the database and in the process launches a new window of the child browser, separate from system A. Then the user switches to his work in system B.
Step 3: When the user completes the task in System B and submits his work, System B transfers a series of parameters and values ββback to System A through the reverse copy URI. System A does some checking, writes the results to the database, then issues a System B command to end the session (as long as I say the session, this is not what you think of the true session as there is no information) and System B closes the child window.
In most cases, this process works. Both vendors support this process. However, sometimes this process fails either at stage 1 or at stage 3. The error appears either as a hard error (as in stage 1) of system B, because it does not receive the required information and expects in the query line, or the error with which the system B sends its data back to system A (as in step 3), but System A cannot retrieve the data. The last error is not displayed to the user and does not generate any error log data. It just doesn't exist. We know about this only after the user looks into System A for their work, and there is nothing there.
And since it has already been taken, System A encodes / decodes the URL data in the query data lines.
Since the error is intermittent, and I cannot replicate in my QA environment, I only have an assumption to leave.