Using FTPS getting "Unable to locate file on the server"


My host server has changed requiring secure connection. I updated the FTP to FTPS and clicked “Test Connection” and it was successful. But from the editor, when you try to publish it says “Unable to locate file on the server” and it will not allow uploads. I tried PASV checked and unchecked. Both ways it confirms connection test, but doesn’t allow publishing or upload on the editor side. I also tried SFTP and again, test connection passed, but “Unable to locate file on the server” when trying to publish.

What am I missing to re-establish a connection?

Note: It was publishing fine with FTP before the server change.


This usually happens with explicit FTPS. The FTP library in Surreal version 5 only supports implicit connections. Although you’ll be able to connect to the server, you won’t be able to list, upload, or delete any files.

This is no longer an issue as of version 7 (if you care to upgrade manually), but if you plan on staying on version 5, I’d suggest using SFTP if possible.


I had the same issue trying to use SFTP. I’m okay with upgrading to 7. I couldn’t find any upgrade option in my control panel. How do I upgrade?


Automatic upgrades aren’t available yet — there are some fairly important things that need to be resolved for backwards compatibility. (This version was a complete rewrite of a 10 year old app, which was quite an undertaking!)

The biggest outstanding issues are:

  • Websites must use HTTPS, otherwise mixed content will not show in the new editor.
  • If you’re using dynamic includes (e.g. PHP includes, Server Side Includes) and your website has tags split across different files (e.g. an opening tag in header.php and its closing tag in footer.php), those tags will be “fixed” by the HTML parser causing mismatched markup and serious layout issues.

While there are a lot of great new features, 7.0 is a major version release so some things have changed or been removed. The more notable deprecations are:

  • The integration API is more robust, so the click-to-define editor is not available in 7.0.
  • Font styles (e.g. arbitrary family, color, sizes) are no longer available (see blocks).

If you only have a handful of sites, you might consider upgrading manually by creating a new account on version 7.

Once you’re all setup and happy with the new version, you can simply remove your old one. (Or if it doesn’t work for you, you’re welcome to remain on version 5 instead!)


Oh. Bummer. I have 19 accounts and was hoping to not have to reset up from scratch. I’m just passing out free updates since they can’t publish right now. Because of the connection issue staying with 5 isn’t going to be an option. 2 of the websites are not https so I will have to address that.

I’ll sign up a new agency account. Can I have a crossover month so I won’t be billed for both plans in the same month while I move everything over?


Sure. Send a request through the version 5 dashboard so I can update that for you.


I sent a request in yesterday morning after I signed up. I also replied to your email you sent with a couple of questions. Did you get those? I have a couple of things I need to sort out to achieve my set up.



Yes! I sent a reply last night. Let me know if you didn’t receive it.


Yes, sorry. It went to spam. I think I should have it sufficiently white listed now.

The response wasn’t what I hoped. Not sure how to proceed at this point.


Okay, here is what I am going to have to do for now. I have adjusted my server to not require secure connection. All of the accounts are now connecting on my version 5 account. I’m going to have to stick with that for now. I have canceled the subscription for the v7 account. It would be nice if I could have a credit for the $24 I paid for it.

I do like what you have done for version 7. I want to eventually use it. I would like to put in a feature request for some type of one click access for those who want to integrate the surreal CMS into another system. Some way to authenticate a session remotely without sending to a second login.