This is a non-comprehensive list of some commonly encountered issues. When you encounter an error while using Custom Data Feeds on ArcGIS Server, the first step is to check the CDF logs.
Accessing Logs
ArcGIS Enterprise 11.5+
-
Logs are accessible in ArcGIS Server Administrator at
https
.:// <domain >/ <server Web Adaptor >/admin/logs - Logs can be filtered by the CUSTOM_DATA_FEEDS component.
-
Logs are accessible in ArcGIS Server Manager at
https
.:// <domain >/ <server Web Adaptor >/manager/log.html - Logs can be filtered by the CUSTOM DATA FEEDS source.
-
Logs are accessible in ArcGIS Enterprise Manager (Kubernetes) at
https
.:// <domain >/ <server Web Adaptor >/admin/logs - Logs can be filtered by the 50999 log code.
Prior to ArcGIS Enterprise 11.5
- Logs are accessible on the server machine at
\
ArcGI S\ Server\framework\runtime\customdata\logs
Changing the Custom Data Feeds Logging Levels
Logging levels adhere to the ordering specified in RFC5424 in order of most to least important:
error
, warn
, info
, http
, verbose
, debug
, and silly
.
The default logging level is info
.
On start up of the local development server, use the flag --log-level=
Example: npm start -- --log-level=debug --self-signed-cert
Common Custom Data Feeds Runtime Issues
Suggestions:
- Make sure that the CDF runtime has been installed. CDF runtime is not automatically installed with ArcGIS Server.
- Verify that Node.js is running on port 6843. On Linux, the
ss
command allows you to view which ports are in use. Usenetstat -ano
on Windows to view process and port numbers.
Suggestions:
- The CDF CLI tool uses the name you provide in the
create
command to set the name of the provider in configuration file. This name is used when creating the .cdpk and when registering your provider on ArcGIS Server. The update process looks for a previously registered provider name that matches the name of the provider in the new, updated .cdpk. Ensure that you are using the same provider name in your updated provider that you used in the provider being updated.Provider
Suggestions:
- Ensure that all required packages are installed at the custom data provider level. You may have a package globally installed on your development machine allowing your custom data app to work correctly in development. The machine that ArcGIS Server is installed on may not have that package installed globally, and therefore cannot start the Node.js server.
- Check that you are running the same version of Node.js on your development environment as the version running on ArcGIS Server. Some versions have native functionality that others do not, and your app may be using native functionality where other versions of Node.js require a package installation. For example, the Fetch API is included with Node.js v18 and higher.
- Ensure that you have not installed any packages at the "app level" or modified the package.json file at the app level. All packages you need for your custom data provider should be installed at the "provider level" directory. Check the logs for any NPM package errors.
You may encounter a situation in which:
- the client application is not displaying the editing widget.
- the
apply
operation at the service or layer-level returns a 400 error code and a message thatEdits This operation is not supported.
- the REST directory does not show
Apply
under your service or layerEdits Supported Operations
.
Suggestions:
- Ensure that the service JSON has been updated to include
Editing
. Navigate to your created service in the ArcGIS Server Administrator Directory and choose edit. In the Service Properties, updatecapabilities
fromQuery
toQuery,
as shown in the image below.Editing
Suggestions:
-
Ensure that the service JSON has been updated to include the
forwar
property and that it is set toUser Identity true
. See the snippet below.Use dark colors for code blocks Copy ...rest of service.json "jsonProperties": {"customDataProviderInfo": { "forwardUserIdentity": true, "dataProviderName": "my-provider", "dataProviderHost": "", "dataProviderId": "", "serviceParameters": {} }}, ... rest of service.json
You may encounter a situation in which:
- a provider developed in Windows cannot be registered in a Linux environment.
- a provider developed in Linux cannot be registered in a Windows environment.
Suggestions:
- It is always best practice to use the same operating system to develop and deploy provider.
- When choosing among npm packages to include in your project, inspect their dependencies if your provider code will possibly be deployed on a OS that different from the one it was developed on. You will likely run into issues if the packages:
- have C/C++ bindings
- reference
node-gyp
,cmake
, orpython
- use
.node
bindings
This error is encountered when a provider that is attempting to be registered contains the same top-level key in the JSON of the config/default.json file as an already registered provider.
Suggestions:
- Edit the config/default.json file of the new provider to use a different top-level key. Be sure to change any reference to that configuration in the model.js file.
- A more robust way to address this to not use the config.json file and leave its contents as an empty object. If there are other configuration values that need to be imported into your provider code, you may simply create another file in your project and "require" them in as you would in any other JavaScript project. Using the included config/default.json is optional.
Common Custom Data Feeds CLI Issues
Suggestions:
- Make sure that you installed a supported version of Node.js (preferably v22.13.1) either directly with the available installer on the Node.js website or via NVM (Linux) or NVM for Windows (Windows). Do not install Node.js both ways. Pick one installation method. When installing the ArcGIS Enterprise SDK, a utility checks your machine for a supported version of Node.js. If the installer prompt warns that a supported version of Node.js is not found, cancel the installation, and install Node.js first.
- Node.js should always be installed before the ArcGIS Enterprise SDK is installed. Uninstall ArcGIS Enterprise SDK from your development machine, and install Node.js. Then reinstall ArcGIS Enterprise SDK.
- If this issue arises in a Linux envionrment, it may be because the user who installed Node.js was not the user who installed CDF CLI tool. Ensure that the same user installs both Node.js and the ArcGIS Enterprise SDK.
- Manually run
activate
if in Windows or_cdf.bat activate
if in Linux. The script is found at: /arcgis/enterprisesdk/customdatacli_cdf.sh
This error may be encountered when using the register
and unregister
CLI commands because these commands contact ArcGIS Server Administrator APIs.
Node.js returns this error when it cannot verify the SSL certificate on the machine on which ArcGIS Server is deployed. If ArcGIS Server is running in a
disconnected Enterprise deployment or the certificate on the ArcGIS Server machine was created with a custom authority, Node.js will not be able to
verify it from the developer environment.
Suggestions:
- If you are working on an intranet, and your organization's security policy allows, you may temporarily disable SSL requirements by
setting the environment variable
NODE
to_TLS _REJECT _UNAUTHORIZED false
. On Windows Powershell, use the command:$
. On Mac/Linux/Git Bash/Windows Command Prompt, use the command:Env :NODE _TLS _REJECT _UNAUTHORIZE D=0 export NODE
. This variable returns to the default value of_TLS _REJECT _UNAUTHORIZE D=0 true
after the terminal session ends. - Another, more secure option, is to add the certificate to the list of trusted certificates. You will need to obtain the .pem file for the certificate
on the machine on which ArcGIS Server is running. On Windows Powershell, use the command:
$
. On Mac/Linux/Git Bash/Windows Command Prompt, use the command:Env :NODE _EXTRA _CA _CERT S = " C :\path\to\cert.pem" export NODE
._EXTRA _CA _CERT S=/path/to/cert.pem