1. Introduction
This troubleshooting document is designed to help you understand and resolve various error codes that may occur when using :modulname:.
Error codes serve as valuable clues to identify and address underlying issues within software, hardware or systems.
The following table contains error codes along with a brief description and possible solution approaches.
Please note that while this document covers a number of common error codes, it does not include all errors you may encounter.
2. Error Codes
Code | Description | Possible solutions |
---|---|---|
0000 |
Unknown error. |
|
1010 |
URL already exists. |
Use a different URL that has not been used before. |
1020 |
Template is not mapped. |
Check the template assignment in the bridge. The FirstSpirit templates used must match the templates of the store system. |
1030 |
Field is not unique. |
The input value is already used. Store another input value for the corresponding field. |
1040 |
Mandatory field is not filled out. |
Specify an input value for the missing mandatory field. |
2010 |
Page already exists in FirstSpirit. |
Check if the page already exists in the CaaS. |
2020 |
Template is not mapped. |
Check the reference names of the page templates in the SiteArchitect with the template assignment from the bridge configuration. In the reference project, |
2030 |
Invalid page type. |
Use |
2040 |
Invalid display names format. |
Check the format of |
2050 |
A required parameter is missing. |
Check if the request contains all necessary parameters when creating a shop-driven page. The necessary parameters can be found in the Create Page subsection under Use Cases in the Frontend API documentation. |
3010 |
FirstSpirit cannot connect to the bridge. |
Open the Project Components in the ServerManager and check the input value for the |
3020 |
FirstSpirit receives 401 from the bridge. |
Open the Project Components in the ServerManager and check the input values for the |
3050 |
FirstSpirit cannot connect to the ContentCreator extension. |
Open the Project Components in the ServerManager and check the input value for the |
8010 |
Frontend API server cannot connect to the CaaS. |
Check the stored CaaS URL of your backend service that includes the frontend-api-server module. In our reference implementation you can find the configuration under config/default.yaml for the You can view the correct CaaS URL under Project Components in ServerManager in the CaaS Connect Project App. Please ensure that your CaaS instance is accessible at the specified URL, for example using Postman. If this is not the case, please contact our Technical Support. |
8020 |
Frontend API server receives 401 from the CaaS. |
Check the stored CaaS API key, project UUID and tenant ID of your backend service that includes the frontend-api-server module. In our reference implementation you can find the configuration at config/default.yaml for the You can view the correct CaaS API key, project UUID, and tenant ID under Project Components in the ServerManager in the CaaS Connect Project App. |
8030 |
Frontend API server cannot connect to the Navigation Service. |
Check the stored navigation service URL of your backend service that includes the frontend-api-server module. In our reference implementation you can find the configuration under config/default.yaml for the You can view the correct navigation service URL under Project Components in the ServerManager in the Navigation Project Configuration. Please ensure that your Navigation Service instance is accessible at the specified URL, for example using Postman. If this is not the case, please contact our Technical Support. |
8040 |
Frontend API server receives 401 from the Navigation Service. |
Check the stored project UUID of your backend service that includes the frontend-api-server module. In our reference implementation you can find the configuration under config/default.yaml for the You can view the correct project UUID either under Project Components in the ServerManager in the CaaS Connect Project App or Navigation Project Configuration. |
8050 |
Cannot create section using TPP. |
Check whether the page already exists in FirstSpirit. If so, the already existing page must be deleted from CaaS. |
8060 |
Page is not found in the CaaS after creation. |
Check if the page was created in CaaS and exists. If this is not the case, the CaaS deployment must be checked. Please ensure that your CaaS instance is accessible, for example using Postman and that the CaaS configuration in the backend service is valid. |
8070 |
Missing parameter in request to Frontend API server for findPage. |
Provide the required parameters in the payload. These can be viewed under FindPageParams in the Frontend API documentation. |
8080 |
Missing parameter in request to Frontend API server for fetchNavigation. |
Provide the required parameters in the payload. These can be viewed under FetchNavigationParams in the Frontend API documentation. |
8090 |
Cannot create page for unknown reasons. |
3. Automated Test Connection
The "Test Connection" feature assists in identifying bridge errors in a straightforward manner. The Test Connection dialog in the ServerManager is not designed for automatic execution, making repetitive triggering time-consuming and not always effective.
To quickly identify potential issues with the connection between FirstSpirit and the bridge, and to detect errors that occur sporadically over a longer period, Connect for Commerce provides an Executable. This Executable can be configured for scheduled or repeated execution as described below.
3.1. Configuring a Schedule
The Executable works with multiple parameters, allowing its behavior to be customized according to specific requirements.
Step 1: Creating a Standard Schedule:
-
Open
Schedule Management
in the ServerManager. -
Click on
Add
. -
Select
Default Schedule
and proceed. -
The schedule should be named appropriately, e.g., "Test Connection".
-
Based on requirements, manual, one-time, or periodic execution should be configured.
-
If needed, user permissions can be set.
-
Proceed to the next step in the
Actions
tab.
Step 2: Adding a Script as an Action
-
In the
Actions
tab, clickAdd
and selectExecute Script
from the list. ClickApply
. -
Provide the script with an appropriate name, e.g., "Test Connection".
-
The script provided below can be entered and customized according to the instructions in the next section.
3.2. Script Parameters
The Executable provided by Connect for Commerce for the Test Connection works with multiple parameters. This allows its behavior to be customized according to specific requirements.
-
Requests:
Array ofTestConnectionRequest
-
Delay:
The time between each Test Connection call, in seconds. -
OverallTime:
The total time after which the interval will end, in seconds.
Requests
To configure the tests performed by the Executable, a TestConnectionRequest
must be created. An HTTP method and the path to the endpoint being tested are required. The base URL from the bridge configuration is automatically applied – see the example below:
requests.add(TestConnectionRequest.withParams("HEAD", "/categories/tree"));
In each round, all test cases are executed in parallel. Adding more test cases increases the number of tests conducted per round within the scheduled time window. This allows multiple endpoints to be tested in a single round. Afterward, the configured delay value is waited for, and a new round begins.
Delay
The delay defines the interval between the start of each test round. During this interval, the Executable initiates a new request.
The time required for a request is not factored into the interval, ensuring that each round starts at the precisely desired time. However, each step is fully completed before a new round begins.
Overall Time
Each round of the Test Connection is summarized in the log. In the first round, detailed information about the request and response is displayed. In subsequent rounds, if the results remain unchanged, the message "Same result as before" is shown. If the response changes, all new details are logged.
3.3. Combining the script elements
With this information, the following script can be customized to meet specific requirements.
To minimize load, the Executable allows a maximum of 100 rounds with a delay of up to 10 minutes. For the same reason, the delay cannot be set shorter than 2 seconds. This is the fallback value if no delay is specified or if the delay is set to less than 2 seconds. |
import com.crownpeak.firstspirit.ecom.connect.bridge.TestConnectionRequest;
import de.espirit.firstspirit.access.*;
import de.espirit.firstspirit.access.script.Executable;
// Provide Context
parameters = new HashMap();
parameters.put("context", context);
// Define Requests to be performed //
requests = new ArrayList();
parameters.put("test_connection_requests", requests);
// Type Definition: TestConnectionRequest.withParams(String httpMethod, String url)
requests.add(TestConnectionRequest.withParams("HEAD", "/categories/tree"));
requests.add(TestConnectionRequest.withParams("HEAD", "/categories/ids"));
requests.add(TestConnectionRequest.withParams("HEAD", "/content"));
// Specify Interval Properties //
// Delay: The time between each Test Connection Call in seconds.
parameters.put("test_connection_interval_delay", 2);
// OverallTime: After which time the interval should be finished in seconds.
parameters.put("test_connection_interval_overall_time", 10);
// Initialize and Call Executable //
moduleAgent = context.requireSpecialist(ModuleAgent.TYPE);
moduleAgent.getTypeForName("FirstSpirit Connect for Commerce - Test Bridge Connection", Executable.class)
.newInstance()
.execute(parameters);
3.4. Interpret the Logging
The result of a manual execution is displayed by clicking on Details
. Previous logs can be accessed in the Schedule Management.
The log output is available in English only. |
Execution Properties
At the start of each execution, a summary of the execution properties is logged. The overallTime
is recorded, along with the time when the execution will be terminated if not completed by then. Termination typically occurs no later than 10 seconds after the overallTime
is reached.
Running Test Connection
- for 10 seconds
- with a delay of 2 seconds between each request
- stopping after a maximum time of 20 seconds
Response Summary After Each Round
Each Test Connection round generates a custom log message. During the initial execution, detailed information about the request/response is displayed. For subsequent rounds, if the results are unchanged, a simple "Same as before" message is shown. If the response changes, the details are logged again.
The expected output should resemble the following:
INFO 17.09.2024 14:01:00.407 (com.crownpeak.firstspirit.ecom.connect.executable.TestConnectionExecutable):
Request No. 1
1) HEAD http://host.docker.internal:3000/api/categories/tree · OK
2) HEAD http://host.docker.internal:3000/api/categories/ids · OK
3) HEAD http://host.docker.internal:3000/api/content · OK
INFO 17.09.2024 14:01:02.411 (com.crownpeak.firstspirit.ecom.connect.executable.TestConnectionExecutable):
Request No. 2
1) Same result as before
2) Same result as before
3) Same result as before
Exceptions will be logged above the response summary. |
4. References
Below you will find an overview of all references listed so far:
Template assignment:
APIs:
Reference implementations on GitHub:
5. Legal notices
FirstSpirit Connect for Commerce is a product of Crownpeak Technology GmbH, Dortmund, Germany.
Only a license agreed upon with Crownpeak Technology GmbH is valid for using the module.
6. Help
The Technical Support of the Crownpeak Technology GmbH provides expert technical support covering any topic related to the FirstSpirit™ product. You can get and find more help concerning relevant topics in our community.
7. Disclaimer
This document is provided for information purposes only. Crownpeak Technology GmbH may change the contents hereof without notice. This document is not warranted to be error-free, nor subject to any other warranties or conditions, whether expressed orally or implied in law, including implied warranties and conditions of merchantability or fitness for a particular purpose. Crownpeak Technology GmbH specifically disclaims any liability with respect to this document and no contractual obligations are formed either directly or indirectly by this document. The technologies, functionality, services, and processes described herein are subject to change without notice.