External Feeds

When creating a new external feed, we set the URL to a shared drive on a different domain. However, the credentials sections is not being used when trying to access the different domain but rather the Octopus Deploy user.

The external feeds will work for us if we use a shared path on the same domain as the Octopus Deploy user (without having to specify credentials).

This is the error message that displays when setting the URL to a shared path on a different domain with credentials set.

ystem.IO.IOException: The user name or password is incorrect.

at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileSystemEnumerableIterator1.CommonInit() at System.IO.FileSystemEnumerableIterator1…ctor(String path, String originalUserPath, String searchPattern, SearchOption searchOption, SearchResultHandler1 resultHandler, Boolean checkHost) at System.IO.Directory.EnumerateDirectories(String path) at Octopus.Core.Packages.NuGet.LocalNuGetPackageFeed.<GetPackageFiles>d__16.MoveNext() in Z:\buildAgent\workDir\eec88466c176b607\source\Octopus.Core\Packages\NuGet\LocalNuGetPackageFeed.cs:line 232 at System.Linq.Enumerable.WhereSelectEnumerableIterator2.MoveNext()
at System.Linq.Enumerable.WhereEnumerableIterator1.MoveNext() at System.Linq.Enumerable.WhereEnumerableIterator1.MoveNext()
at System.Linq.Buffer1..ctor(IEnumerable1 source)
at System.Linq.OrderedEnumerable1.<GetEnumerator>d__1.MoveNext() at System.Linq.Enumerable.<TakeIterator>d__241.MoveNext()
at System.Linq.Buffer1..ctor(IEnumerable1 source)
at System.Linq.Enumerable.ToArray[TSource](IEnumerable1 source) at Octopus.Core.Packages.NuGet.LocalNuGetPackageFeed.GetPackagesContaining(String searchTerm, CancellationToken cancellationToken, Int32& total, Int32 skip, Int32 take, Boolean allowPreRelease) in Z:\buildAgent\workDir\eec88466c176b607\source\Octopus.Core\Packages\NuGet\LocalNuGetPackageFeed.cs:line 90 at Octopus.Server.Web.Api.Actions.PackageSearchAction.Search(String feedId, String packageId, Boolean partialMatch, Boolean includeMultipleVersions, Boolean includeNotes, Boolean includePreRelease, Int32 take, VersionRange versionRange, Regex preReleaseTag) in Z:\buildAgent\workDir\eec88466c176b607\source\Octopus.Server\Web\Api\Actions\PackageSearchAction.cs:line 74 at Octopus.Server.Web.Api.Actions.PackageSearchAction.Execute() in Z:\buildAgent\workDir\eec88466c176b607\source\Octopus.Server\Web\Api\Actions\PackageSearchAction.cs:line 54 at Octopus.Server.Web.Infrastructure.Api.Responder1.Respond(TDescriptor options, NancyContext context) in Z:\buildAgent\workDir\eec88466c176b607\source\Octopus.Server\Web\Infrastructure\Api\Responder.cs:line 145
at System.Dynamic.UpdateDelegates.UpdateAndExecute3[T0,T1,T2,TRet](CallSite site, T0 arg0, T1 arg1, T2 arg2)
at Octopus.Server.Web.Api.OctopusRestApiModule.<>c__DisplayClass0_0.<.ctor>b__0(Object o) in Z:\buildAgent\workDir\eec88466c176b607\source\Octopus.Server\Web\Api\OctopusRestApiModule.cs:line 46
at Nancy.Routing.Route.<>c__DisplayClass4.b__3(Object parameters, CancellationToken context)

Hi John,

Thanks for getting in touch. We don’t support credentials for folders/network shares in External Feeds. Sorry that the interface isn’t clear in this case; that the credentials will only work for HTTP connections. I’m sorry if you also typed the user name password a few times scratching your head saying: “but the username and password is correct!”. We’re making a change so it’s explicit it won’t work on network shares.

We recommend that you run the Octopus Server under a user account and to grant that user access to what it needs. Or you could grant the accounts on that machine access to that network share.

The design decision here to not support credentials for network shares is that they can’t be constrained to the current process and end up in the Windows Credential Store. At different times Octopus Server needs to reach out to various feeds and fetch it would be problematic doing that with many different network credentials.

Let me know if you’re still having issues.

Regards,
Nick