I’ve got what I feel must be either a very common issue that I’m somehow unable to find in my search for existing support, or (less embarrassingly) actually a weird issue.
When trying to install Stash (for the first time), my installation always hangs at “Creating your system” in the setup wizard, and on Optimising database in the console.
PS C:\Users\[censoredusename]\.stash> .\stash-win.exe --version
v0.29.3-115-g67b1dd8d - Official Build - 2025-12-11 22:02:04
PS C:\Users\[censoredusename]\.stash> .\stash-win.exe --port 9998
WARN[2025-12-12 19:17:06] config file not found. Assuming new system... #There IS a config.yml in that directory
INFO[2025-12-12 19:17:06] stash version: v0.29.3-115-g67b1dd8d - Official Build - 2025-12-11 22:02:04
INFO[2025-12-12 19:17:06] stash is listening on 0.0.0.0:9998
INFO[2025-12-12 19:17:06] stash is running at http://localhost:9998/
INFO[2025-12-12 19:17:06] Version v0.29.3-115-g67b1dd8d (67b1dd8d) is already the latest released
2025-12-12T19:17:18.6020329-07:00 INF Response: 200 OK httpRequest={"proto":"HTTP/1.1","remoteIP":"127.0.0.1:12821","requestID":"[censoredhostname]/oqwvH4EfYq-000001","requestMethod":"GET","requestPath":"/","requestURL":"http://localhost:9998/"} httpResponse={"bytes":928,"elapsed":0,"status":200} service=stash
2025-12-12T19:17:18.6956219-07:00 INF Response: 200 OK httpRequest={"proto":"HTTP/1.1","remoteIP":"127.0.0.1:12822","requestID":"[censoredhostname]/oqwvH4EfYq-000003","requestMethod":"GET","requestPath":"/assets/index-DkM4iYzr.css","requestURL":"http://localhost:9998/assets/index-DkM4iYzr.css"} httpResponse={"bytes":150103,"elapsed":35.6889,"status":200} service=stash
2025-12-12T19:17:18.7144397-07:00 INF Response: 200 OK httpRequest={"proto":"HTTP/1.1","remoteIP":"127.0.0.1:12821","requestID":"[censoredhostname]/oqwvH4EfYq-000002","requestMethod":"GET","requestPath":"/assets/index-DeVoO1Kb.js","requestURL":"http://localhost:9998/assets/index-DeVoO1Kb.js"} httpResponse={"bytes":1255972,"elapsed":56.1633,"status":200} service=stash
2025-12-12T19:17:18.8758888-07:00 INF Response: 200 OK httpRequest={"proto":"HTTP/1.1","remoteIP":"127.0.0.1:12822","requestID":"[censoredhostname]/oqwvH4EfYq-000006","requestMethod":"GET","requestPath":"/javascript","requestURL":"http://localhost:9998/javascript"} httpResponse={"bytes":23,"elapsed":0,"status":200} service=stash
2025-12-12T19:17:18.8758888-07:00 INF Response: 200 OK httpRequest={"proto":"HTTP/1.1","remoteIP":"127.0.0.1:12821","requestID":"[censoredhostname]/oqwvH4EfYq-000005","requestMethod":"GET","requestPath":"/css","requestURL":"http://localhost:9998/css"} httpResponse={"bytes":23,"elapsed":0,"status":200} service=stash
2025-12-12T19:17:18.8807221-07:00 INF Response: 200 OK httpRequest={"proto":"HTTP/1.1","remoteIP":"127.0.0.1:12821","requestID":"[censoredhostname]/oqwvH4EfYq-000007","requestMethod":"GET","requestPath":"/assets/en-J5hLkoA1.js","requestURL":"http://localhost:9998/assets/en-J5hLkoA1.js"} httpResponse={"bytes":2510,"elapsed":0,"status":200} service=stash
2025-12-12T19:17:18.8837081-07:00 INF Response: 200 OK httpRequest={"proto":"HTTP/1.1","remoteIP":"127.0.0.1:12821","requestID":"[censoredhostname]/oqwvH4EfYq-000008","requestMethod":"POST","requestPath":"/graphql","requestURL":"http://localhost:9998/graphql"} httpResponse={"bytes":2874,"elapsed":0.5035,"status":200} service=stash
2025-12-12T19:17:18.8921283-07:00 INF Response: 200 OK httpRequest={"proto":"HTTP/1.1","remoteIP":"127.0.0.1:12821","requestID":"[censoredhostname]/oqwvH4EfYq-000009","requestMethod":"POST","requestPath":"/graphql","requestURL":"http://localhost:9998/graphql"} httpResponse={"bytes":257,"elapsed":0,"status":200} service=stash
2025-12-12T19:17:18.8937177-07:00 INF Response: 200 OK httpRequest={"proto":"HTTP/1.1","remoteIP":"127.0.0.1:12822","requestID":"[censoredhostname]/oqwvH4EfYq-000010","requestMethod":"GET","requestPath":"/customlocales","requestURL":"http://localhost:9998/customlocales"} httpResponse={"bytes":26,"elapsed":1.0844,"status":200} service=stash
2025-12-12T19:17:18.8962666-07:00 INF Response: 200 OK httpRequest={"proto":"HTTP/1.1","remoteIP":"127.0.0.1:12821","requestID":"[censoredhostname]/oqwvH4EfYq-000011","requestMethod":"GET","requestPath":"/assets/en-GB-DkdjmUMU.js","requestURL":"http://localhost:9998/assets/en-GB-DkdjmUMU.js"} httpResponse={"bytes":23425,"elapsed":0,"status":200} service=stash
2025-12-12T19:17:18.9119580-07:00 INF Response: 200 OK httpRequest={"proto":"HTTP/1.1","remoteIP":"127.0.0.1:12821","requestID":"[censoredhostname]/oqwvH4EfYq-000012","requestMethod":"GET","requestPath":"/assets/en-US-B6RbUvkq.js","requestURL":"http://localhost:9998/assets/en-US-B6RbUvkq.js"} httpResponse={"bytes":379,"elapsed":0,"status":200} service=stash
2025-12-12T19:17:18.9170118-07:00 INF Response: 200 OK httpRequest={"proto":"HTTP/1.1","remoteIP":"127.0.0.1:12821","requestID":"[censoredhostname]/oqwvH4EfYq-000013","requestMethod":"POST","requestPath":"/graphql","requestURL":"http://localhost:9998/graphql"} httpResponse={"bytes":25,"elapsed":0,"status":200} service=stash
2025-12-12T19:17:18.9185192-07:00 INF Response: 200 OK httpRequest={"proto":"HTTP/1.1","remoteIP":"127.0.0.1:12821","requestID":"[censoredhostname]/oqwvH4EfYq-000014","requestMethod":"GET","requestPath":"/apple-touch-icon.png","requestURL":"http://localhost:9998/apple-touch-icon.png"} httpResponse={"bytes":31524,"elapsed":0,"status":200} service=stash
2025-12-12T19:17:18.9185192-07:00 INF Response: 200 OK httpRequest={"proto":"HTTP/1.1","remoteIP":"127.0.0.1:12822","requestID":"[censoredhostname]/oqwvH4EfYq-000015","requestMethod":"GET","requestPath":"/favicon.ico","requestURL":"http://localhost:9998/favicon.ico"} httpResponse={"bytes":42220,"elapsed":0,"status":200} service=stash
2025-12-12T19:17:18.9280677-07:00 INF Response: 200 OK httpRequest={"proto":"HTTP/1.1","remoteIP":"127.0.0.1:12821","requestID":"[censoredhostname]/oqwvH4EfYq-000016","requestMethod":"GET","requestPath":"/assets/Setup-DeyEjhZs.js","requestURL":"http://localhost:9998/assets/Setup-DeyEjhZs.js"} httpResponse={"bytes":4058,"elapsed":0,"status":200} service=stash
2025-12-12T19:17:18.9285707-07:00 INF Response: 200 OK httpRequest={"proto":"HTTP/1.1","remoteIP":"127.0.0.1:12822","requestID":"[censoredhostname]/oqwvH4EfYq-000017","requestMethod":"GET","requestPath":"/assets/StashConfiguration-3CLOS6ni.js","requestURL":"http://localhost:9998/assets/StashConfiguration-3CLOS6ni.js"} httpResponse={"bytes":1225,"elapsed":0,"status":200} service=stash
2025-12-12T19:17:18.9285707-07:00 INF Response: 200 OK httpRequest={"proto":"HTTP/1.1","remoteIP":"127.0.0.1:12824","requestID":"[censoredhostname]/oqwvH4EfYq-000018","requestMethod":"GET","requestPath":"/assets/FolderSelect-COJuID2p.js","requestURL":"http://localhost:9998/assets/FolderSelect-COJuID2p.js"} httpResponse={"bytes":956,"elapsed":0,"status":200} service=stash
2025-12-12T19:17:18.9285707-07:00 INF Response: 200 OK httpRequest={"proto":"HTTP/1.1","remoteIP":"127.0.0.1:12821","requestID":"[censoredhostname]/oqwvH4EfYq-000019","requestMethod":"GET","requestPath":"/assets/SettingSection-BzULbDyZ.js","requestURL":"http://localhost:9998/assets/SettingSection-BzULbDyZ.js"} httpResponse={"bytes":1923,"elapsed":0,"status":200} service=stash
2025-12-12T19:17:18.9285707-07:00 INF Response: 200 OK httpRequest={"proto":"HTTP/1.1","remoteIP":"127.0.0.1:12822","requestID":"[censoredhostname]/oqwvH4EfYq-000020","requestMethod":"GET","requestPath":"/assets/StringListInput-igl8-sOD.js","requestURL":"http://localhost:9998/assets/StringListInput-igl8-sOD.js"} httpResponse={"bytes":836,"elapsed":0,"status":200} service=stash
2025-12-12T19:17:18.9311141-07:00 INF Response: 200 OK httpRequest={"proto":"HTTP/1.1","remoteIP":"127.0.0.1:12821","requestID":"[censoredhostname]/oqwvH4EfYq-000021","requestMethod":"GET","requestPath":"/assets/RatingSystem-zjFrj9hu.js","requestURL":"http://localhost:9998/assets/RatingSystem-zjFrj9hu.js"} httpResponse={"bytes":3863,"elapsed":0,"status":200} service=stash
2025-12-12T19:17:18.9311141-07:00 INF Response: 200 OK httpRequest={"proto":"HTTP/1.1","remoteIP":"127.0.0.1:12822","requestID":"[censoredhostname]/oqwvH4EfYq-000022","requestMethod":"GET","requestPath":"/assets/DateInput-DYMdouXH.js","requestURL":"http://localhost:9998/assets/DateInput-DYMdouXH.js"} httpResponse={"bytes":37592,"elapsed":0,"status":200} service=stash
2025-12-12T19:17:18.9316178-07:00 INF Response: 200 OK httpRequest={"proto":"HTTP/1.1","remoteIP":"127.0.0.1:12821","requestID":"[censoredhostname]/oqwvH4EfYq-000023","requestMethod":"GET","requestPath":"/assets/DateInput-o5zSZbOQ.css","requestURL":"http://localhost:9998/assets/DateInput-o5zSZbOQ.css"} httpResponse={"bytes":3201,"elapsed":0,"status":200} service=stash
2025-12-12T19:17:18.9316178-07:00 INF Response: 200 OK httpRequest={"proto":"HTTP/1.1","remoteIP":"127.0.0.1:12822","requestID":"[censoredhostname]/oqwvH4EfYq-000024","requestMethod":"GET","requestPath":"/assets/stashbox-D-j4JKYb.js","requestURL":"http://localhost:9998/assets/stashbox-D-j4JKYb.js"} httpResponse={"bytes":205,"elapsed":0,"status":200} service=stash
2025-12-12T19:17:18.9316178-07:00 INF Response: 200 OK httpRequest={"proto":"HTTP/1.1","remoteIP":"127.0.0.1:12824","requestID":"[censoredhostname]/oqwvH4EfYq-000025","requestMethod":"GET","requestPath":"/assets/ExternalLink-CqAFmJXN.js","requestURL":"http://localhost:9998/assets/ExternalLink-CqAFmJXN.js"} httpResponse={"bytes":135,"elapsed":0,"status":200} service=stash
INFO[2025-12-12 19:18:27] Migrating database from version 0 to 75
INFO[2025-12-12 19:18:27] Running pre-migration for schema version 32
INFO[2025-12-12 19:18:27] Running post-migration for schema version 32
INFO[2025-12-12 19:18:27] Migrating folders
INFO[2025-12-12 19:18:27] Migrating 0 files...
INFO[2025-12-12 19:18:27] Finished migrating files
INFO[2025-12-12 19:18:27] Running post-migration for schema version 34
INFO[2025-12-12 19:18:27] Migrating scenes table
INFO[2025-12-12 19:18:27] Migrating images table
INFO[2025-12-12 19:18:27] Migrating galleries table
INFO[2025-12-12 19:18:27] Migrating files table
INFO[2025-12-12 19:18:27] Migrating folders table
INFO[2025-12-12 19:18:27] Running post-migration for schema version 42
INFO[2025-12-12 19:18:27] Migrating performer aliases
INFO[2025-12-12 19:18:27] Migrating duplicate performers
INFO[2025-12-12 19:18:27] Migrating performer disambiguation
INFO[2025-12-12 19:18:27] Running post-migration for schema version 45
INFO[2025-12-12 19:18:27] Moving tags_image to blobs table
INFO[2025-12-12 19:18:27] Moving studios_image to blobs table
INFO[2025-12-12 19:18:27] Moving performers_image to blobs table
INFO[2025-12-12 19:18:27] Moving scenes_cover to blobs table
INFO[2025-12-12 19:18:27] Moving movies_images to blobs table
INFO[2025-12-12 19:18:27] Blobs storage already set, not overwriting
INFO[2025-12-12 19:18:27] Running pre-migration for schema version 48
INFO[2025-12-12 19:18:27] Running post-migration for schema version 49
INFO[2025-12-12 19:18:27] Running post-migration for schema version 52
INFO[2025-12-12 19:18:27] Running post-migration for schema version 55
INFO[2025-12-12 19:18:27] Running post-migration for schema version 58
INFO[2025-12-12 19:18:27] Running post-migration for schema version 60
INFO[2025-12-12 19:18:27] Running post-migration for schema version 64
INFO[2025-12-12 19:18:27] Running post-migration for schema version 65
INFO[2025-12-12 19:18:27] Optimising database
While apparently hung, the stash-win.exe process is using no CPU, Disk, or Network, and only 7.7MB of RAM (sometimes 16.9).
I’ve tried:
- Rebooting
- Giving earlier runs over an hour to finish
- Testing with smaller libraries
- Testing with no libraries
- Running both v0.29.3 and v0.29.3-115-g67b1dd8d
- Running from different install paths
- Using libraries on different disks.
- Ending orphaned(?) ffmpeg processes.
I’m out of ideas and feeling a little silly.