Version 2.1.0-alpha.2 is ready for testing!

I just published version 2.1.0-alpha.2 for desktops, and 2.1.0-alpha.3 for servers.

The only difference in .3 is in the docker entrypoint script–no PhotoStructure code is different between alpha.2 and alpha.3.

What’s new in alpha.2?

  • :sparkles: Native Apple Silicon builds are now available for macOS users

  • :sparkles: PhotoStructure now supports powerful “include” and “exclude” patterns via the new globs setting. This replaces the prior neverIgnored setting.

  • :sparkles: The asset header now supports direct downloading of the original asset

And a slew of other bugfixes and packaging:

What’s an alpha build? How do I install it?

Details are here:

Any known bugs?

I’ve posted a reply with the current list of known bugs.

If you see any other issues, please bring them up in discord or post them here.

:beers: Cheers!

1 Like

Bugs found in v2.1.0-alpha.2+

(Moved from

I’ll get these sorted as soon as I can. If you see other bugs, please post here or in discord!

  • look into @avdp’s SQLite corruption issue (can you start with a new library, and if it recurs, send me debug logs, please?)

  • Remove assets button results in “lost network connection” (via @adamf)

  • Requesting a new sync or rebuild from the web doesn’t seem to work (via @Nighthawk)

  • Previously-excluded directories, like /#recycled/, are not be ignored when they are inside a scanned directory.

  • About page sync status incorrectly states all directories are stale

  • Progress panel doesn’t show parade of newly-imported thumbnails, and detail shows asset ids

  • Sync rescheduling seems to be broken

  • After changing the library to a different directory, you need to restart PhotoStructure to make sync restart properly (no restart should be necessary!)

  • Edge on macOS doesn’t respond to esc key

  • Archiving an asset and then visiting it from the search results returned a 500 server error (via @organizeme)

  • Preview images may have wrong aspect ratio (via @organizeme )

Features that need testing

Docker/RPi support

  • Does the new muti-arch docker image run OK on Raspberry Pi 4s?

  • Does PhotoStructure for Node run OK on Raspberry Pi 4s?

Deletion/Trash can support

  • Do “deleted” files on local disks on macOS end up properly in the trash can? Does “Put Back” work?

  • Do “deleted” files on local disks on Windows end up properly in the trash can? Does “Undo Delete” work?

  • Do “deleted” files on local disks on Ubuntu/gnome end up properly in the trash can? Does “Restore from trash” work?

Sync Reports

  • Can people open up their sync report with their favorite spreadsheet app?

  • Does it help answer the “why is my file not in my library” question?


New full-screen mode

  • please click the full screen button in the upper right header bar, and then continue to browse your library. If it doesn’t behave as expected, please report OS, browser, and what went wrong.

@mrm Sadly, the SQLITE_CORRUPT issue did re-occur with a new library. Link to debug log files through PM.

Confirming have been able to use this function without any problems or errors.

Happened to me once, sent logs, has not reoccurred since the initial hour of processing.

Clicked delete button, went to PS trash can. Clicked empty trash. After progress bar of trash will be emptied soon, file disappeared. Did not go to the OSX trash can. Was not able to restore/put back from this point.

Thanks for taking the time to test, and report back your findings!

Unfortunately I can only “soft-delete” (put files into the macOS trash can) that are on local and formatted as APFS or Mac OS Extended.

If your files were, say, on your NAS, the files will be hard-deleted. (Maybe I could see if there’s a #recycle subdirectory, and try moving them there first?)

I just checked and the photo deleted is in the Synology #recycle folder with the correct folder/file structure. Sweet!

This appears to be fixed. Is it intentional that an asset can only be in one category at a time? I marked one for removal, then trashed it, and when I untrashed it it reappeared in the marked for removal section.

Bug Reports: (Tracking our convo on discord)

Running a force rebuild on docker marks all assets as shown=0, hiding them, and showing 0 assets/photos/videos on the about page.

Force resync via the GUI brings them (mostly) back.

Separate bug: Re-running rebuild, then sync, then rebuild, then sync, pulled in at least one identically duplicate video. Re attached screenshot.
ps dupe

Other bug: The count totals for ‘X videos/images processed’ after resync is not correct. I saw totals adding up to 58 and 60 assets on two different runs, but the total assets is 52 (or 53, including the duplicate imported videos as previously discussed.)

We honed in on the fact that it said 42 photos and 16 videos. 16 videos is correct, and it should be 37 photos.

Found a few new bugs for you regarding disconnected network drives with OSX and Synology.

  1. When a mounted network drive is disconnected, and the not connected message comes up, the window cannot be click-drag-moved, although it can be resized. Minimizing works.
    Screen Shot 2022-06-09 at 2.22.02 PM

  2. Upon reconnecting the network drive, PhotoStructure never reconnects to the library while the program remains open. It has no issues connecting after restarting the program.

Archive, removal, and deletion are three separate boolean states, or “bits”: you can be both archived and deleted, for example.

Is that not the behavior you were seeing?

(You should be able to toggle theses bits back off from the header or the asset operations menu)

It’s not starting for me - sits here and does nothing more:

After commenting out the RPC port setting, same deal still:

I’ve waited several hours and nada.

The logs say (xx replaced sensitive settings):

{"ts":1654828148642,"l":"info","ctx":"LogStartup","msg":"setup(): starting main","meta":{"version":"2.1.0-alpha.3","startTs":1654828148049,"argv":["C:\\Program Files\\nodejs\\node.exe","C:\\Users\\xx\\Apps\\photostructure-for-servers\\bin\\main.js"],"arch":"x64","platform":"win32","os":"Windows 10 (10.0.19044) on x64","isPacked":true,"isElectron":false,"versions":{"node":"16.15.1"},"settings":{"logLevel":"debug","httpPort":1787,"libraryDir":"C:/xx/All"},"NODE_ENV":"production","PS_COMMAND_TIMEOUT_MS":"60000","PS_EXPOSE_NETWORK_WITHOUT_AUTH":"true","PS_HEIF_CONVERT_PATH":"C:\\Apps","PS_HTTP_PORT":"xx","PS_KEYWORD_REPARENTING":"copy","PS_LIBRARY_DIR":"C:/PSLibraries/All","PS_LOG_DIR":"D:/PSLogs/All","PS_LOG_LEVEL":"debug","PS_MIN_ASSET_FILE_SIZE_BYTES":"4096","PS_MIN_IMAGE_DIMENSION":"100","PS_MIN_VIDEO_DURATION_SEC":"5","PS_MOUNTPOINTS_TTL_MS":"60000","PS_SCAN_PATHS":"D:/PS","PS_VOLUME_METADATA_TTL_MS":"1200000"}}
{"ts":1654828148700,"l":"debug","ctx":"work.FreeMem","msg":"estimatedFreeMem() ","meta":{"result":"14.4 GB","freemem":"13.1 GB","totalmem":"17.1 GB"}}
{"ts":1654828149081,"l":"warn","ctx":"volumes.MountpointsWin","msg":"mountpointsWin()","meta":{"error":"BatchCluster was given invalid options: maxProcAgeMillis must be greater than or equal to 60000: must be greater than the max value of spawnTimeoutMillis (15000) and taskTimeoutMillis (60000) at verifyOptions (C:\\Users\\xx\\Apps\\photostructure-for-servers\\node_modules\\batch-cluster\\src\\BatchClusterOptions.ts:258:11); new BatchCluster (C:\\Users\\xx\\Apps\\photostructure-for-servers\\node_modules\\batch-cluster\\src\\BatchCluster.ts:97:33); new k (C:\\Users\\xx\\Apps\\photostructure-for-servers\\bin\\main.js:9:459267); C:\\Users\\xx\\Apps\\photostructure-for-servers\\bin\\main.js:9:461963; Function.u [as instance] (C:\\Users\\xx\\Apps\\photostructure-for-servers\\bin\\main.js:9:756276); h (C:\\Users\\xx\\Apps\\photostructure-for-servers\\bin\\main.js:9:696186); C:\\Users\\xx\\Apps\\photostructure-for-servers\\bin\\main.js:9:696376; u (C:\\Users\\xx\\Apps\\photostructure-for-servers\\bin\\main.js:9:756276); impl (C:\\Users\\xx\\Apps\\photostructure-for-servers\\bin\\main.js:9:691500)"}}
{"ts":1654828149082,"l":"info","ctx":"child.ChildProcess","msg":"stdoutResult(): execFile","meta":{"cmd":"fsutil","args":["fsinfo","drives"]}}
{"ts":1654828149110,"l":"debug","ctx":"ChildEnv","msg":"non PS env:","meta":{"ALLUSERSPROFILE":"C:\\ProgramData","APPDATA":"C:\\Users\\xx\\AppData\\Roaming","ChocolateyInstall":"C:\\ProgramData\\chocolatey","ChocolateyLastPathUpdate":"132652839671720619","COMMONPROGRAMFILES":"C:\\Program Files\\Common Files","CommonProgramFiles(x86)":"C:\\Program Files (x86)\\Common Files","CommonProgramW6432":"C:\\Program Files\\Common Files","COMPUTERNAME":"AIDAN-DELL","COMSPEC":"C:\\WINDOWS\\system32\\cmd.exe","DriverData":"C:\\Windows\\System32\\Drivers\\DriverData","EXEPATH":"C:\\Program Files\\Git\\bin","FP_NO_HOST_CHECK":"NO","HOME":"C:\\Users\\aidan","HOMEDRIVE":"C:","HOMEPATH":"\\Users\\xx","JAVA_HOME":"C:\\Program Files\\Android\\Jdk\\microsoft_dist_openjdk_1.8.0.25","LOCALAPPDATA":"C:\\Users\\xx\\AppData\\Local","LOGONSERVER":"\\\\xx-xx","MSMPI_BENCHMARKS":"C:\\Program Files\\Microsoft MPI\\Benchmarks\\","MSMPI_BIN":"C:\\Program Files\\Microsoft MPI\\Bin\\","MSYSTEM":"MINGW64","NODE_ENV":"production","NUMBER_OF_PROCESSORS":"8","OLDPWD":"C:/Program Files/Git/usr/bin","OneDrive":"C:\\Users\\aidan\\OneDrive","OPENSSL_CONF":"C:\\Apps\\OpenSSL-Win32\\bin\\openssl.cfg","OS":"Msys","PATH":"C:\\Program Files\\Git\\mingw64\\bin;C:\\Program Files\\Git\\usr\\bin;C:\\Users\\aidan\\bin;C:\\Python310\\Scripts;C:\\Python310;C:\\Program Files (x86)\\Intel\\iCLS Client;C:\\Program Files\\Intel\\iCLS Client;C:\\Python39\\Scripts;C:\\Python39;…WS\\System32\\webm;C:\\cygwin64\\bin","PATHEXT":".COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.PY;.PYW","PLINK_PROTOCOL":"ssh","PROCESSOR_ARCHITECTURE":"AMD64","PROCESSOR_IDENTIFIER":"Intel64 Family 6 Model 60 Stepping 3, GenuineIntel","PROCESSOR_LEVEL":"6","PROCESSOR_REVISION":"3c03","ProgramData":"C:\\ProgramData","PROGRAMFILES":"C:\\Program Files","ProgramFiles(x86)":"C:\\Program Files (x86)","ProgramW6432":"C:\\Program Files","PROMPT":"$P$G","PSModulePath":"C:\\WINDOWS\\system32\\WindowsPowerShell\\v1.0\\Modules\\;C:\\Program Files (x86)\\Microsoft SQL Server\\130\\Tools\\PowerShell\\Modules\\;C:\\Program Files (x86)\\Microsoft SQL Server\\150\\Tools\\PowerShell\\Modules\\","PUBLIC":"C:\\Users\\Public","PWD":"C:/Users/xx/Apps/photostructure-for-servers","SHLVL":"3","SYSTEMDRIVE":"C:","SYSTEMROOT":"C:\\WINDOWS","TEMP":"C:\\Users\\aidan\\AppData\\Local\\Temp","TERM":"xterm-256color","TMP":"C:\\Users\\xx\\AppData\\Local\\Temp","USERDOMAIN":"xx-xx","USERDOMAIN_ROAMINGPROFILE":"xx-xx","USERNAME":"xx","USERPROFILE":"C:\\Users\\xx","VBOX_MSI_INSTALL_PATH":"C:\\Program Files\\Oracle\\VirtualBox\\","VIPSHOME":"\\\\?\\C:\\Users\\xx\\Apps\\photostructure-for-servers\\node_modules\\sharp\\build\\Release","VIPS_MIN_STACK_SIZE":"2m","WINDIR":"C:\\WINDOWS","_":"C:/Program Files/nodejs/node.exe","LANG":"C"}}

@awojtas I suspect you’ve got some settings from prior version that are making PhotoStructure unhappy. I just added that BatchCluster option validation to prevent premature child process termination.

Can you comment out your settings (except maybe PS_HTTP_PORT) and try again?

(BTW: PS_RPC_PORT is no longer a thing: I got replaced the RPC coordination port with a shared file)

Trying with a 30k library now on PS Desktop for Windows, referenced photos on an SSD on same drive as library.

  1. Only 2588 of 30000 photos imported. Logs show photos as enqueued but they don’t make it into assets.
  2. I cannot access on other browsers within my LAN. PS has firewall permission.
    Should this user environmental variable do it? (because it doesn’t)
    Variable value: 1
    I’d suggest making this setting as simple as possible given
    a) I suspect many non-technical users who will be installing the desktop windows app.
    b) being able to access photostructure on any device in a LAN is the key feature differentiating it from desktop DAMs.

Its for whatever reason really slow on importing. Its hardly touching my network.

Any ideas?

For me it was quite fast, but I disabled the video transcoding.

It’s hardly touching any resources.

@whoopn what os are you running, and what edition of PhotoStructure?

If you can, send me debug logs and I can take a look.

Oof, that’s no good. Can you send me debug logs?

Have you gone through

and ?

I completely agree with you about making network sharing easy to do–this will be made as a simple checkbox setting on the settings page as soon as user auth is complete (which is the next feature I want to work on).

I commented out my settings and still no workey. I deleted my PS library and now it starts, will just have to let it rebuild.