Skip to content

Decision Tree: Data Import Issues

Use this when no job or production data is appearing in GateKeeper, the pallet queue is empty, or import files are not being processed.


Step 1: Which import type does your site use?

Site Type Import Type Data Source
Teasdale (Carrollton) TeasdaleImporter JSON files from DCOM system
CargillRfid / Chipotle (St. Clair, Sidney, etc.) Matthews Interface TCP messages on port 60251
CargillSalt (Hersey) NetworkFileImporter Semicolon-delimited files on network share
Zfl (Zebra Futures Lab) ZflImporter ZPL data on TCP port 6101
  • Teasdale -- Go to Step 2
  • Matthews (CargillRfid/Chipotle) -- Go to Step 3
  • NetworkFileImporter (CargillSalt) -- Go to Step 4
  • ZflImporter (Zfl) -- Go to Step 5

Step 2: Teasdale -- No pallets in queue

Step 2a: Has a job been sent from the DCOM system?

Check with the operator or DCOM administrator whether a job file has been sent.

  • YES -- Go to Step 2b
  • NO -- Request that a job be sent from DCOM. No job means no pallet queue.

Step 2b: Can GateKeeper access the import directory?

Check appsettings.json for the TeasdaleImportPath setting. This is the folder where JSON files are expected.

  1. Open File Explorer and navigate to that path.
  2. If it is a network share (starts with \\), verify you can browse to it.

  3. YES (folder is accessible and files are visible) -- Go to Step 2c

  4. NO (folder not found or access denied) -- Check network connectivity and credentials. The network username and password are in appsettings.json (TeasdaleNetworkUsername, TeasdaleNetworkPassword). See Check Network Connectivity.

Step 2c: Is there a JSON file in the import folder?

Look for files matching the configured prefix (for example, RFID-CT7*.json or RFID-CT9*.json depending on the line).

  • YES (file is present) -- Go to Step 2d
  • NO (folder is empty) -- The file has not arrived yet or the file prefix filter does not match. Check the TeasdaleFilePrefix setting in appsettings.json.

Step 2d: Is the Teasdale importer enabled?

Check appsettings.json: "EnableTeasdaleImporter": true

  • YES -- Go to Step 2e
  • NO -- Set it to true and restart the application.

Step 2e: Check the log for import errors

Open the log file and search for "TEASDALE-IMPORTER".

Common error messages:

Log Message Meaning Resolution
"Import directory does not exist" The configured path cannot be found Fix TeasdaleImportPath in appsettings.json
"File is empty" The JSON file has no content Contact DCOM -- the export is producing empty files
"No valid production data found in file" JSON was read but no usable data inside Contact DCOM -- required fields are missing
"Missing required field: GTIN" GTIN is missing from the import data Contact DCOM to fix the export
"Missing required field: LotNumber" Lot number is missing from the import data Contact DCOM to fix the export
"Missing or invalid PackagingDate" The packaging date is missing or in a bad format Contact DCOM to fix the export
"Invalid JSON format" The file is not valid JSON Contact DCOM -- the file is malformed
"File locked or in use, will retry" The file is still being written Wait -- the importer will retry automatically
"Failed to connect to network share" Network credentials failed Check TeasdaleNetworkUsername and TeasdaleNetworkPassword
"Ignoring duplicate JobId" Same job file was imported again This is normal -- the importer skips duplicate jobs

Step 3: Matthews Interface -- No production data (CargillRfid / Chipotle)

Step 3a: Is the Matthews interface enabled?

Check appsettings.json: "EnableMatthewsInterface": true

  • YES -- Go to Step 3b
  • NO -- Set it to true and restart the application.

Step 3b: Is the Matthews system sending data?

Check with the Matthews system administrator whether data is being sent to the GateKeeper machine on the correct port.

The default port is in appsettings.json: "MatthewsPort": 60251

  • YES -- Go to Step 3c
  • NO -- Request that the Matthews system begin sending data.

Step 3c: Is a firewall blocking the port?

The Matthews system connects inbound to GateKeeper on the configured port.

  1. Check that inbound TCP port 60251 (or the configured port) is allowed through the Windows Firewall.
  2. Check for any network firewalls between the Matthews system and the GateKeeper machine.

  3. Port is open -- Go to Step 3d

  4. Port is blocked -- Add a firewall rule to allow inbound TCP on the Matthews port.

Step 3d: Is an IP filter rejecting the connection?

Check appsettings.json for "MatthewsAllowedIp". If this is set to a specific IP address, only that IP can connect.

  • Not set or set to "0.0.0.0" -- All IPs are allowed. Go to Step 3e.
  • Set to a specific IP -- Verify this matches the actual Matthews system IP address. If it does not match, update the setting and restart.

Step 3e: Check the log for Matthews messages

Search the log for "Matthews".

  • If you see connection messages but no data, the Matthews system may be connected but not sending production data.
  • If you see no Matthews messages at all, the connection is not being established.

Resolution: Work with the Matthews system administrator to verify the connection and data transmission.


Step 4: NetworkFileImporter -- No production data (CargillSalt)

Step 4a: Is the network file importer enabled?

Check appsettings.json: "EnableNetworkFileImporter": true

  • YES -- Go to Step 4b
  • NO -- Set it to true and restart the application.

Step 4b: Does the import file exist?

Check the configured import path in appsettings.json (NetworkFileImportPath).

  • YES (file exists) -- Go to Step 4c
  • NO -- Check with the data source provider. The file must be placed in the configured directory.

Step 4c: Check the log for import errors

Search the log for "NETWORK-FILE-IMPORTER".

Common error messages:

Log Message Meaning Resolution
"Directory does not exist" The configured directory is not found Fix NetworkFileImportPath in appsettings.json
"File has less than 2 lines" File needs a header row plus at least one data row Check the source file format
"GTIN column not found in header" The configured column name does not match the file header Check NetworkFileGtinColumn setting
"Expiration column not found in header" The configured column name does not match the file header Check NetworkFileExpirationColumn setting
"GTIN value is empty" The GTIN column exists but the value is blank Check the source data
"Invalid expiration date format" The date cannot be parsed Expected formats: YYYYMMDD or MM/DD/YYYY

Step 5: ZflImporter -- No EPC data (Zfl)

Step 5a: Is the ZPL being sent?

The ZPL data is sent via TCP to the GateKeeper machine on port 6101 (configurable).

  1. Check that the Zebra printer is configured to send ZPL to the correct IP and port.
  2. Check the log for ZFL importer messages.

Step 5b: Is port 6101 open?

Check that inbound TCP port 6101 is allowed through the firewall.

  • YES -- Go to Step 5c
  • NO -- Add a firewall rule and restart the application.

Step 5c: Check the EPC queue in the UI

If the EPC queue in the UI is empty, no ZPL data has been received.

Resolution: Verify the Zebra printer configuration and network path. Contact the Zebra system administrator.


Still not resolved?

If data imports are still not working after following these steps, see When to Escalate and collect diagnostics using the Collecting Diagnostics guide.