When pushing a transfer set up, ssh is not traversing back to the root directory after each file transfer. It just keeps creating directories deeper and deeper until the filesystem can't handle the depth. To the logs:
SSH: Connecting from host [Jenkins]
SSH: Connecting with configuration [ftp.arglebargle.com] ...
SSH: Creating session: username [skooby], hostname [ftp.arglebargle.com], port [22]
SSH: Connecting session ...
SSH: Connected
SSH: Opening SFTP channel ...
SSH: SFTP channel open
SSH: Connecting SFTP channel ...
SSH: Connected
SSH: Remote root is not absolute, getting absolute directory from PWD
SSH: cd [release-core/data/core/]
SSH: OK
SSH: mkdir [api]
SSH: OK
SSH: cd [api]
SSH: OK
SSH: put [Application.cfc]
SSH: OK
At this point, the first file has been transferred to the correct location:
release-core/data/core/api/Application.cfc
The next file should be put here:
release-core/data/core/api/v1/controller.cfc
..but rather than doing a 'cd /' or equivalent, we just keep drilling:
SSH: mkdir [release-core]
SSH: OK
SSH: cd [release-core]
SSH: OK
SSH: mkdir [data]
SSH: OK
SSH: cd [data]
SSH: OK
SSH: mkdir [core]
SSH: OK
SSH: cd [core]
SSH: OK
SSH: mkdir [api]
SSH: OK
SSH: cd [api]
SSH: OK
SSH: mkdir [v1]
SSH: OK
SSH: cd [v1]
SSH: OK
SSH: put [controller.cfc]
SSH: OK
SSH: mkdir [release-core]
SSH: OK