Thumbs.db

When octopus tentacle extracts our nuget package, a thumbs.db file gets created by the OS because its an image file. Then when Octopus Deploy tries to copy over the thumbs.db it cannot and fails the step. Can we get Octopus Deploy to ignore all the thumbs.db files?

Here is the log that shows the error.

14:12:24 Info | Deploying package: D:\Octopus\Files\SecurePMS.Web.2.0.10.442.nupkg-364ce366-4dcf-447e-8c85-87a73581e503
14:12:25 Info | The previous attempt to deploy this package was not successful; re-deploying.
14:12:25 Verbose | Extracting package to: D:\Octopus\Applications\UAT\SecurePMS.Web\2.0.10.442_2
14:12:25 Verbose | Extracted 32 files
14:12:25 Info | Copying package contents to 'D:\SecurePMS\Prod’
14:12:25 Verbose | Retry #1 on copy ‘D:\SecurePMS\Prod\Content\themes\Availity\Images\Thumbs.db’. Exception: Access to the path ‘D:\SecurePMS\Prod\Content\themes\Availity\Images\Thumbs.db’ is denied.
14:12:26 Verbose | Retry #2 on copy ‘D:\SecurePMS\Prod\Content\themes\Availity\Images\Thumbs.db’. Exception: Access to the path ‘D:\SecurePMS\Prod\Content\themes\Availity\Images\Thumbs.db’ is denied.
14:12:26 Verbose | Retry #3 on copy ‘D:\SecurePMS\Prod\Content\themes\Availity\Images\Thumbs.db’. Exception: Access to the path ‘D:\SecurePMS\Prod\Content\themes\Availity\Images\Thumbs.db’ is denied.
14:12:26 Verbose | Retry #4 on copy ‘D:\SecurePMS\Prod\Content\themes\Availity\Images\Thumbs.db’. Exception: Access to the path ‘D:\SecurePMS\Prod\Content\themes\Availity\Images\Thumbs.db’ is denied.
14:12:37 Verbose | Retry #54 on copy ‘D:\SecurePMS\Prod\Content\themes\Availity\Images\Thumbs.db’. Exception: Access to the path ‘D:\SecurePMS\Prod\Content\themes\Availity\Images\Thumbs.db’ is denied.
14:12:50 Verbose | Retry #104 on copy ‘D:\SecurePMS\Prod\Content\themes\Availity\Images\Thumbs.db’. Exception: Access to the path ‘D:\SecurePMS\Prod\Content\themes\Availity\Images\Thumbs.db’ is denied.
14:13:00 Verbose | Retry #154 on copy ‘D:\SecurePMS\Prod\Content\themes\Availity\Images\Thumbs.db’. Exception: Access to the path ‘D:\SecurePMS\Prod\Content\themes\Availity\Images\Thumbs.db’ is denied.
14:13:10 Verbose | Retry #204 on copy ‘D:\SecurePMS\Prod\Content\themes\Availity\Images\Thumbs.db’. Exception: Access to the path ‘D:\SecurePMS\Prod\Content\themes\Availity\Images\Thumbs.db’ is denied.
14:13:20 Verbose | Retry #254 on copy ‘D:\SecurePMS\Prod\Content\themes\Availity\Images\Thumbs.db’. Exception: Access to the path ‘D:\SecurePMS\Prod\Content\themes\Availity\Images\Thumbs.db’ is denied.
14:13:26 Error | System.UnauthorizedAccessException: Access to the path ‘D:\SecurePMS\Prod\Content\themes\Availity\Images\Thumbs.db’ is denied.
14:13:26 Error | at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
14:13:26 Error | at System.IO.File.InternalCopy(String sourceFileName, String destFileName, Boolean overwrite, Boolean checkHost)

Hi John,

No, there is no way to tell Octopus to ignore specific files when copying the package contents unfortunately.

But, there’s a couple of things you could try to bypass this issue:

  1. Instead of using the Custom Installation Directory feature, you could use a custom post-deploy script in your package step to copy the package contents to it’s final destination and ignore the Thumbs.db file that way, see the answer to this StackOverflow question for how to do that, or
  2. Prevent Windows from creating the Thumbs.db file all together, see this blog post of the steps to take.

I hope that helps!

Thank you and best regards,
Henrik