FTP reply code 553 means the server rejected the requested action because the filename does not conform to the server's naming conventions or violates an access policy. This is different from 550 (file not found / permission denied) — 553 specifically means the name itself is invalid or prohibited. Common triggers include filenames with characters the server does not allow (certain special characters, Unicode on non-UTF8 servers), filenames matching a block pattern (e.g., .htaccess, .php on a restricted server), or attempting to create a file in a read-only or disallowed location.
The filename includes characters the server does not accept — such as spaces, quotation marks, colons, or Unicode characters on a server that only supports ASCII filenames. The allowed character set varies by server and operating system.
The server has a filename filter that blocks certain patterns — such as files with executable extensions (.exe, .php, .sh), dotfiles (.htaccess, .env), or filenames matching regex patterns configured by the administrator.
The filename or path includes directory traversal (../) or resolves to a location outside the user's chroot jail or allowed directory tree. The server rejects the path as a security measure.
Remove special characters, spaces, and non-ASCII characters from the filename. Use only alphanumeric characters, hyphens, underscores, and periods.
Contact the server administrator to find out what filename patterns are blocked. Some servers publish their naming rules in the 220 greeting banner or in documentation.
If the server blocks certain file extensions, rename the file before uploading. For example, rename .exe to .exe.bak and rename it back on the server side if SITE RENAME is available.
Use PWD to confirm your current directory. If you are in a read-only location, CWD to a writable directory before attempting the upload.
The file or directory operation failed. The path does not exist, or access is denied.
The FTP command was recognized but the parameters or arguments are invalid.
The file operation was rejected because it exceeds the storage limit or allocation.