V-change-web-domain-docroot problem

I get unexplainable error while changing docroot:

v-change-web-domain-docroot 'user' 'domain.tld' 'domain.tld' '/home/user/web/domain.tld/public_html/smth' [Error 3]

I change it via API. If I change it via hestiaCP panel all is good. I tried same command via CLI - it works correct. How it is possible to debug API call in hestia? I exhausted all methods to find what is wrong.

Hello @culibine,

As far as I know, these are the return codes.

Return Codes
VALUE 	NAME 	COMMENT
0 	OK 	Command has been successfuly performed
1 	E_ARGS 	Not enough arguments provided
2 	E_INVALID 	Object or atgument is not valid
3 	E_NOTEXIST 	Object doesn't exist
4 	E_EXISTS 	Object already exists
5 	E_SUSPENDED 	Object already exists
6 	E_UNSUSPENDED 	Object is already unsuspended
7 	E_INUSE 	Object can't be deleted because it is used by another object
8 	E_LIMIT 	Object cannot be created because of hosting package limits
9 	E_PASSWORD 	Wrong password
10 	E_FORBIDEN 	Object cannot be accessed by this user
11 	E_DISABLED 	Subsystem is disabled
12 	E_PARSING 	Configuration is broken
13 	E_DISK 	Not enough disk space to complete the action
14 	E_LA 	Server is to busy to complete the action
15 	E_CONNECT 	Connection failed. Host is unreachable
16 	E_FTP 	FTP server is not responding
17 	E_DB 	Database server is not responding
18 	E_RRD 	RRDtool failed to update the database
19 	E_UPDATE 	Update operation failed
20 	E_RESTART 	Service restart failed

So seems one of the objects used doesn’t exist.

Are you using new or legacy API?

Another command used via API works? Something like v-list-web-domain user domain

Maybe it is a quoting problem in the API call… just guessing…

Cheers,
sahsanu

After hours of trial and error finally I found that directory addition script in hestia does not add folders recursively.

For example: /public

Add directory script adds new dir correctly.

Example #2: /public/deep/dir

Fails silently as mkdir does not do recursive directory addition.

So fix for this: I just explode dir string by “/” and foreach cycle solves the problem.