-
-
Notifications
You must be signed in to change notification settings - Fork 143
Description
When I do arkmanager installmod [modid] it says that it downloads the mod successfully but then immediately says it was not successfully downloaded:
Success. Downloaded item `2307661303 to "/home/steam/.steam/SteamApps/workshop/content/346110/2307661303" (24589452 bytes) quit
Mod 2307661303 was not successfully downloaded
I originally reported this here SickHub/arkserver#27 . There might be more relevant details there.
Using that image I encountered this error when it tried to (re-)install a mod at start (after the mods were removed for an unknown reason):
Logging directory: '/home/steam/.steam/logs'
[ 0%] Checking for available updates...
[----] Verifying installation...
UpdateUI: skip show logo
Steam Console Client (c) Valve Corporation - version 1743712175
-- type 'quit' to exit --
Loading Steam API...IPC function call IClientUtils::GetSteamRealm took too long: 49 msec
OK
@NoPromptForPassword 1
"@NoPromptForPassword" = "1"
Connecting anonymously to Steam Public...OK 2025-04-13 11:01:50.539
Waiting for client config...OK 2025-04-13 11:01:50.541
Waiting for user info...OK 2025-04-13 11:01:50.566
workshop_download_item 346110 2307661303 2025-04-13 11:01:56.877
Downloading item 2307661303 ... 2025-04-13 11:01:56.910
Success. Downloaded item 2307661303 to "/home/steam/.steam/SteamApps/workshop/content/346110/2307661303" (24589452 bytes) quit
Mod 2307661303 was not successfully downloaded
These logs come from here:
ark-server-tools/tools/arkmanager
Line 2689 in a05d763
| modsrcdir="$(echo "$output" | sed -n 's@^Success. Downloaded item [0-9][0-9]* to "\([^"]*\)" .*@\1@p')" |
I eventually worked around the issue by changing this line:
ark-server-tools/tools/arkmanager
Line 2689 in a05d763
| modsrcdir="$(echo "$output" | sed -n 's@^Success. Downloaded item [0-9][0-9]* to "\([^"]*\)" .*@\1@p')" |
to this (to try to remove any ansi escape sequences):
modsrcdir="$(echo "$output" | sed -n 's@Success. Downloaded item [0-9][0-9]* to "\([^"]*\)" .*@\1@p' | sed -r "s/\x1B\[(([0-9]{1,2})?(;)?([0-9]{1,2})?)?[m,K,H,f,J]//g")"
And reinstalling the mods with arkmanager installmod ..., before restarting. To
It appears that steamcmd now includes ANSIs escape sequence
You can reproduce this by doing this in a container (I'm basically replicating what arkmanager does):
$ source $(which arkmanager)
$ output=$(runSteamCMDspinnerSubst 2 +workshop_download_item "346110" "1404697612")
$ modsrcdir="$(echo "$output" | sed -n 's@^Success. Downloaded item [0-9][0-9]* to "\([^"]*\)" .*@\1@p')"
$ echo "$modsrcdir"
$ modsrcdir="$(echo "$output" | sed -n 's@Success. Downloaded item [0-9][0-9]* to "\([^"]*\)" .*@\1@p')"
$ echo "$modsrcdir"
/home/steam/.steam/SteamApps/workshop/content/346110/1404697612
steam@ark-ark-cluster-island-7787888f5f-l84q4:~$ cat $modsrcdir/mod.info
cat: ''$'\033''[0m/home/steam/.steam/SteamApps/workshop/content/346110/1404697612/mod.info': No such file or directory
$ cat /home/steam/.steam/SteamApps/workshop/content/346110/1404697612/mod.info
AwesomeSpyglassAwesomeSpyglass>$
$ sudo apt update
$ sudo apt install -y less
$ echo "$modsrcdir" | less
$ echo "$output" | less
ESC[0m/home/steam/.steam/SteamApps/workshop/content/346110/1404697612
Redirecting stderr to '/home/steam/.steam/logs/stderr.txt'
Logging directory: '/home/steam/.steam/logs'
[ 0%] Checking for available updates...
[----] Verifying installation...
UpdateUI: skip show logo
Steam Console Client (c) Valve Corporation - version 1743712175
-- type 'quit' to exit --
Loading Steam API...ESC[0mIPC function call IClientUtils::GetSteamRealm took too long: 51 msec
OK
ESC[0mESC[1m@NoPromptForPassword 1
ESC[0m"@NoPromptForPassword" = "1"
ESC[0m
Connecting anonymously to Steam Public...ESC[0mOK
ESC[0mWaiting for client config...ESC[0mOK
ESC[0mWaiting for user info...ESC[0mOK
ESC[0mESC[1mworkshop_download_item 346110 1404697612
ESC[0mDownloading item 1404697612 ...ESC[0m
ESC[0mSuccess. Downloaded item 1404697612 to "/home/steam/.steam/SteamApps/workshop/content/346110/1404697612" (3418407 bytes) ESC[0mESC[1mquit
ESC[0m