Skip to content

Custom Data Feeds Troubleshooting

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>/<serverWebAdaptor>/admin/logs.

    • Logs can be filtered by the CUSTOM_DATA_FEEDS component.
  • Logs are accessible in ArcGIS Server Manager at https://<domain>/<serverWebAdaptor>/manager/log.html.

    • Logs can be filtered by the CUSTOM DATA FEEDS source.
  • Logs are accessible in ArcGIS Enterprise Manager (Kubernetes) at https://<domain>/<serverWebAdaptor>/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 \ArcGIS\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=<level>

Example: npm start -- --log-level=debug --self-signed-cert

Common Custom Data Feeds Runtime Issues

cdf arcgis server 500 error Suggestions:

  1. Make sure that the CDF runtime has been installed. CDF runtime is not automatically installed with ArcGIS Server.
  2. Verify that Node.js is running on port 6843. On Linux, the ss command allows you to view which ports are in use. Use netstat -ano on Windows to view process and port numbers.

cdf arcgis server update provider error Suggestions:

  1. The CDF CLI tool uses the name you provide in the createProvider 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.

cdf arcgis server node failed to start Suggestions:

  1. 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.
  2. 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.
  3. 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:

  1. the client application is not displaying the editing widget.
  2. the applyEdits operation at the service or layer-level returns a 400 error code and a message that This operation is not supported.
  3. the REST directory does not show ApplyEdits under your service or layer Supported Operations.

Suggestions:

  1. 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, update capabilities from Query to Query,Editing as shown in the image below. cdf google sheets service json

Suggestions:

  1. Ensure that the service JSON has been updated to include the forwarUserIdentity property and that it is set to true. See the snippet below.

    Use dark colors for code blocksCopy
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
       ...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:

  1. a provider developed in Windows cannot be registered in a Linux environment.
  2. a provider developed in Linux cannot be registered in a Windows environment.

Suggestions:

  1. It is always best practice to use the same operating system to develop and deploy provider.
  2. 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, or python
    • 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:

  1. 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.
  2. 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:

  1. 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.
  2. 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.
  3. 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.
  4. Manually run activate_cdf.bat if in Windows or activate_cdf.sh if in Linux. The script is found at: /arcgis/enterprisesdk/customdatacli

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:

  1. 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_TLS_REJECT_UNAUTHORIZED to false. On Windows Powershell, use the command: $Env:NODE_TLS_REJECT_UNAUTHORIZED=0. On Mac/Linux/Git Bash/Windows Command Prompt, use the command: export NODE_TLS_REJECT_UNAUTHORIZED=0. This variable returns to the default value of true after the terminal session ends.
  2. 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: $Env:NODE_EXTRA_CA_CERTS = "C:\path\to\cert.pem". On Mac/Linux/Git Bash/Windows Command Prompt, use the command: export NODE_EXTRA_CA_CERTS=/path/to/cert.pem.

Your browser is no longer supported. Please upgrade your browser for the best experience. See our browser deprecation post for more details.