Troubleshooting FTP/SFTP File Errors in ProcessFlows

Troubleshooting FTP/SFTP File Errors in ProcessFlows

Audience: All users — customers and CS/support teams
Applies to: All ProcessFlows using FTP/SFTP file nodes (List Directory, Upload File, Move Files)
Last reviewed: July 2026

Many integrations exchange files over FTP or SFTP — inventory files, shipment/ASN files, purchase orders. This article covers the three most common file-node errors, how to tell whether your business data was affected, and how to fix each one.

How to use this article: find your error message in the table below, then jump to the matching section.

Error messageFailing nodeWas business data affected?Section
File Moved FailedMove FilesNo — data synced; only file archiving failed1
Illegal characters in pathUpload FileYes — the file was not delivered2
No files or directories found in the specified pathList DirectoryNo — there was simply nothing to process3

1. "File Moved Failed" on the Move Files node

Symptoms: The Snapshot shows Failed, but the main data push (e.g., Update Inventory, Shipment Post) completed successfully. The Move Files activity log shows the backup path was found, followed by File Moved Failed (Error).

What it means: Your data synced correctly. The failure is only in the post-processing step that archives the processed file to a backup folder (for example Inventory_Synced/ or Shipment_Synced/). The problem is on the FTP server side — not in your source data, mapping, or the destination API.

Resolution — check in this order:

  1. Folder exists: confirm the backup folder named in the activity log actually exists on the FTP server. Create it if missing.
  2. Permissions: verify the FTP user has write and rename/move permission on the backup folder (moving a file requires both).
  3. Duplicate filename: check whether a file with the same name already exists in the backup folder. Many FTP servers refuse to overwrite on move. Remove or rename the old file, or enable timestamped filenames in the node settings.
  4. Re-run the flow and confirm the Snapshot clears.

Do I need to resync? No. Because the data push succeeded before the archive step failed, no data resync is needed — fixing the FTP folder is enough to stop the failed snapshots.

TIP: If two or more flows archive to sibling folders on the same FTP server and all started failing at the same time, it is almost always one shared permission or path change. Fix it once and all affected flows clear together.

2. "Illegal characters in path" on the Upload File node

Symptoms: The Snapshot shows Failed on Upload File (Webhook, Splitter and Mapper completed fine). The activity log shows the evaluated filename expression containing raw fragments such as &, < or > before Operation failed — Illegal characters in path.

What it means: The filename or path is built dynamically from your data (for example, an item or shipment name). When a data value contains characters that are illegal in file paths — most commonly & in product names — the generated path is invalid and the upload fails. The file was not delivered, so this one does need action. The issue is in the filename expression, not in the source system data validity or the FTP server.

Resolution:

  1. Recover the failed records: re-run the flow manually for each failed transaction using the order-level ID from the source system (see warning below), via Execute with Runtime Filter on the manual variant of the flow.
  2. Permanent fix: sanitise the filename expression in the Upload File node — strip or replace illegal characters (& < > : " / \ | ? *) before they enter the path. Prefer building filenames from safe identifiers (order ID, timestamp) rather than free-text names.
  3. Redeploy and confirm the next webhook run succeeds.

WARNING: When re-running with a Runtime Filter, use the correct ID type. If the failed transaction Source ID is a shipment ID but the source app API fetches by order ID, filtering on the shipment ID returns 404 Not Found. Copy the order ID from the webhook payload of the failed transaction instead.

3. "No files or directories found in the specified path" on List Directory

Symptoms: A polling flow (for example, purchase-order import) fails at its very first node, every run, with No files or directories found in the specified path. No iterations, no Source IDs, no transaction files are generated.

What it means: The flow polled its source folder (for example /PO) and found it empty. This is an empty-source condition — no data existed to process, so nothing was lost. However, the node treats it as an Error, so every empty poll flags a Failed snapshot, creating noise that can hide real failures.

Resolution:

  1. Confirm expectations: check with your team whether files are actually expected in that folder at that frequency. If yes, the problem is upstream — investigate the system that is supposed to drop the files, and confirm the folder path in the node matches where they land.
  2. If empty polls are normal: configure the List Directory / GenericFTP adapter to treat "no files found" as a warning or skip instead of an Error, so empty polls stop appearing as failed snapshots.

Do I need to resync? No. Nothing was fetched, so there is nothing to recover.

4. Error reference

Error messageLikely causeFix
File Moved FailedBackup folder missing, no write/rename permission, or duplicate filenameFix folder/permissions on FTP server; no resync needed
Illegal characters in pathData value with &, <, > etc. used in filename expressionSanitise filename expression; re-run failed records by order ID
No files or directories found in the specified pathSource folder empty at poll timeVerify upstream file producer, or configure node to skip empty polls
404 Not Found (on manual re-run)Runtime filter used the wrong ID type (e.g., shipment ID instead of order ID)Use the order-level ID from the webhook payload

5. When to contact support

Escalate to APPSeCONNECT support via support.appseconnect.com if the FTP folder and permissions are confirmed correct but "File Moved Failed" persists, if you cannot edit the filename expression yourself, or if you need the adapter empty-poll behaviour changed. Include the ProcessFlow name, the snapshot timestamp, and the exact activity-log lines — this typically halves resolution time.

Related articles: APPSeCONNECT Troubleshooting Guide · Setting Up Your First ProcessFlow · Managing Environments and Agents

    • Related Articles

    • APPSeCONNECT Troubleshooting Guide

      Audience: All users — customers and CS/support teams Applies to: All integrations and environments Last reviewed: 2026 This guide covers the most frequent issues reported by APPSeCONNECT customers, organized by category. For each issue you will find: ...
    • Billing & Account Management

      Audience: Account administrators and billing contacts Applies to: All plans Last reviewed: 2026 This article covers billing, subscription management, plan changes, invoicing, and account administration for APPSeCONNECT. 1. Plans and Pricing Overview ...
    • Product Features & How-Tos

      Audience: All users Applies to: All plans Last reviewed: 2026 This article explains how to use APPSeCONNECT's core features and walks through common how-to tasks. Use it as a reference guide for day-to-day operation. 1. ProcessFlow — Core Concepts A ...
    • Setting Up Your First ProcessFlow

      Audience: Administrators, integration developers Applies to: All ProcessFlow-enabled plans Last reviewed: 2026 1. Understanding ProcessFlow Nodes Each node performs one function. Combine them left-to-right to create a complete data flow. Node Purpose ...
    • Managing Environments and Agents

      Audience: Administrators, IT teams Applies to: All environments (Cloud and On-Premise) Last reviewed: 2026 1. Cloud vs. On-Premise Agent Factor Cloud Agent vs. On-Premise Agent Provisioned by APPSeCONNECT automatically | You (installed on your ...