How to publish to Orchestrator?!?

I guess my point was… in the online demo videos… they show how they published their script from a local development machine, and then next thing we see is them typing the package name within Orchestrator, and the package was magically there, with no mention of how it got from myget.org (their configured publishing path) into demo.uipath.com (orchestrator).

I’m sure once I read the docs it will all be clear… but they skipped over some important stuff in that video and made it look easier than it really is.

OK so down to the specifics now that I read some of the guide. They don’t have any kind of “high level overview” of the publish process, so I’m reading between the lines here:

I see that I have a NuGetServerUrl parameter, in the my local UiPath.settings file which allows me to specify where my package will go when I click “Publish” in UIPath Studio.

I also see that I have packagesPath on the Orchestrator server.

Am I supposed to have my UIPath Studio’s NuGetServerUrl pointing at the Orchestrator server’s packagesPath… or is the server’s packagesPath simply the location where it will store packages that are uploaded some other way?

If the latter is true… how do I get my local UIPath Studio to publish its packages directly into the Orchestrator server?

For anyone with the same problem… since it’s really not clear in the Orchestrator user guide… I contacted UIPath directly and they said “The easiest way to publish (hassle free) from Studio to Orchestrator is to connect your local development machine to the orchestrator (with studio open) and publish from studio.”

Apparently when your local UIPath Studio machine is connected to Orchestrator… the publish process is magic. No need to update the NuGetServerUrl parameter in the UiPath.settings file.

The manual alternative to this, if your local UIPath Studio machine is not connected to Orchestrator, is to:

  1. Open your local UIPath and click “Setup > Publish”. This will create a nuget package in whichever directory is configured in the NuGetServerUrl parameter
  2. Go to Orchestrator’s “Processes” page and click on the “View Packages” button
  3. Click on the “Upload Package” button
  4. Click “Browse” and navigate to the location where your packages are published in step 1
  5. Click upload
1 Like

Question:

How will you run the robot after your package is published and if your Studio Machine is not connected to Orchestrator?

1 Like

If you are able to get your robot set up in Orchestrator to use your machine and username, then it will automatically upload to Orchestrator, as you may already know.

If you are still getting a certificate error, I think it is because you don’t have the certificate of the site installed on your machine to make it trusted. If you can get that resolved, then you are good to go, except I can’t remember the details on how to get your certificate file for the Orchestrator site. Once you have the certificate file, though, installing it is easy.

1 Like

Publish it to a different machine and run from there, I suppose.

@octechnologist -

Orchestrator has been built to enable proper staging and control of deployments. In a common setup you’d have a Dev environment, Test env and Prod env (each of those being 1 or more machines/robots). Once you have that and they are all connected to Orchestrator, it really is as easy as pushing the Publish and then deploying and running through the release process.

The reason why it’s “clunky” for machines that are not connected to it, is because it’s not it’s intended use, just an additional, side way of doing it (presumably before you get rolling with the to-be model and/or need to transfer manually projects that were done before/separately).
You could roughly compare it to using GitHub through VS plugins (few button clicks) versus uploading the files manually through it’s website - you still can do it, but… definitely not the best experience and usually just a one-time thing to get the stuff there.

For the certificate error, as @ClaytonM mentioned, you need to install it to your machine. Check Orchestrator installation guide, Appendix 4 (p. 49 onwards) - download link is in Orchestrator FAQ. Since you said you weren’t doing the Orchestrator deployment yourself, possibly contact the people that did it to send you the certificate for installation.
This might help as well.

Now don’t get me wrong - we’ve been through the “making it work” part and sometimes it did feel frustrating. One thing I can say, though, is that when you do finish it, release management becomes much easier.

Correct. All Orchestrator related settings (including NuGet url) are fetched from the Orchestrator on setting up the connection and if needed can be refreshed by restarting UiRobot service.

2 Likes

Excellent. Thank you for the additional confirmations & info.

And yes… if I were to manually publish from my local development machine (not connected to Orchestrator)… then the package could ultimately be run on any of the other “back office robots” that are connected.

We’re just getting started on our RPA journey… so we’re bootstrapping as we go. The user guide didn’t make it exceptionally clear that a local development machine should be connected to Orchestrator in order to publish… but now I’m discovering that having my local dev machine connected is the best practice.

Thanks again.

Do you have only 1 (prod) instance of Orchestrator driving all your dev, test, and prod robots (“environments”’ as you mentioned)? Do you also have a test instance of Orchestrator?

We are setting up dev, test, and prod server instances of Orchestrator itself, plus 2 corresponding robots for each of those instances. Do you find that to be overkill?

I can see where it would be sensible to have one “test” instance of the Orchestrator server to first try out any new Orchestrator software versions/patches prior to deploying them into production. It could have 1 robot which could be used to test new versions of UiPath itself.

It seems to me that having only 1 main instance of Orchestrator driving an array of dev, test, and prod robots (via Orchestrator’s “Environments” grouping feature) is what we should use to mature any given script from dev to test to prod… instead of having a dev instance of Orchestrator + 1 or more dev robots, and a test instance of Orchestrator + 1 or more test robots, and prod instance of orchestrator with multiple prod robots. That doesn’t feel right.

I don’t seem to have access to that Orchestrator FAQ URL. What’s the secret handshake?

If you’re logged in with your company email, contact @Corneliu_Niculite to add it to whitelist for Enterprise sections.

We’re using test Orchestrator (for version changes) + prod multi-tenant Orchestrator (for prod :wink: ). Dev, Test, Prod robot environments are inside each tenant.
YMMV, this is just something we’ve went with and it seems to be working well.

1 Like

Added!

1 Like

Hi peeps,

This is my first post on the forum as fairly new to UIPath. We are just going through setting up the platform with 2017.1 orchestrator and 2017.1 UIPath studio. I have followed the guidelines as much as I could find. I am now stuck at the point where the packages are not getting published from the studio I get the following error (full stack trace is below). The robot on the dev machine is configured and connected to the orchestrator, they are both on the same domain and I can’t figure out how does the studio get the settings. From this post, I get that when the robot is connected to the machine, it gets all the settings about nuget repo etc but that’s fine and the robot is green (connected). I am still unable to publish any package. Has anyone else encountered this issue or any idea where should I focus to troubleshoot this.

Thanks

17:06:50:140 => [ERROR] [UiPath.Workflow.Logging.StudioTraceListener] [14] System.UnauthorizedAccessException: Access to the path ‘D:\RPA\Demo1\project.json’ is denied.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
at System.IO.FileStream…ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
at System.IO.StreamWriter.CreateFile(String path, Boolean append, Boolean checkHost)
at System.IO.StreamWriter…ctor(String path, Boolean append, Encoding encoding, Int32 bufferSize, Boolean checkHost)
at System.IO.File.InternalWriteAllText(String path, String contents, Encoding encoding, Boolean checkHost)
at System.IO.File.WriteAllText(String path, String contents)
at UiPath.Project.WorkflowProject.Save()
17:06:50:299 => [ERROR] [UiPath.Workflow.Logging.StudioTraceListener] [14] System.Exception: Publishing the project has failed.

Error: Failed to process request. ‘Bad Gateway’.
The remote server returned an error: (502) Bad Gateway… —> System.InvalidOperationException: Failed to process request. ‘Bad Gateway’.
The remote server returned an error: (502) Bad Gateway… —> System.Net.WebException: The remote server returned an error: (502) Bad Gateway.
at System.Net.HttpWebRequest.GetResponse()
at NuGet.RequestHelper.GetResponse()
at NuGet.HttpClient.GetResponse()
at NuGet.PackageServer.EnsureSuccessfulResponse(HttpClient client, Nullable1 expectedStatusCode) --- End of inner exception stack trace --- at NuGet.PackageServer.EnsureSuccessfulResponse(HttpClient client, Nullable1 expectedStatusCode)
at NuGet.PackageServer.PushPackageToServer(String apiKey, Func`1 packageStreamFactory, Int64 packageSize, Int32 timeout, Boolean disableBuffering)
at NuGet.PackageServer.PushPackage(String apiKey, IPackage package, Int64 packageSize, Int32 timeout, Boolean disableBuffering)
at UiPath.Project.Deploy.ProjectPackageManager.Push(WorkflowProjectPackage pack, Int32 timeout)
at UiPath.Project.Deploy.ProjectPackageManager.PackAndPublish(WorkflowProject project, Int32 timeoutMS)
at UiPath.Project.ProjectManager.Publish(Int32 timeoutMS)
at UiPath.Workflow.ViewModels.MainViewModel.PackAndPush()
— End of inner exception stack trace —

If D:\RPA is the directory on your orchestrator server that you’ve selected for published packages… it seems like maybe the OS user you’ve chosen on the Orchestrator server might not have write access to that directory.

1 Like

Hi All, I am facing issues while publish project to orchestrator, will share the log file shortly. Can someone please help here

StudioLogs:

18:16:26:359 => [ERROR] [UiPath.Workflow.Logging.StudioTraceListener] [5] System.IO.FileNotFoundException: Could not find file ‘C:\Users\10640913\AppData\Local\UiPath\UiStudio.settings’.
File name: ‘C:\Users\10640913\AppData\Local\UiPath\UiStudio.settings’
at System.I O.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
at System.IO.FileStream…ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize)
at System.Xml.XmlDownloadManager.GetStream(Uri uri, ICredentials credentials, IWebProxy proxy, RequestCachePolicy cachePolicy)
at System.Xml.XmlUrlResolver.GetEntity(Uri absoluteUri, String role, Type ofObjectToReturn)
at System.Xml.XmlTextReaderImpl.OpenUrlDelegate(Object xmlResolver)
at System.Threading.CompressedStack.runTryCode(Object userData)
at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)
at System.Threading.CompressedStack.Run(CompressedStack compressedStack, ContextCallback callback, Object state)
at System.Xml.XmlTextReaderImpl.OpenUrl()
at System.Xml.XmlTextReaderImpl.Read()
at System.Xml.XmlLoader.Load(XmlDocument doc, XmlReader reader, Boolean preserveWhitespace)
at System.Xml.XmlDocument.Load(XmlReader reader)
at System.Xml.XmlDocument.Load(String filename)
at UiPath.Workflow.Configuration.UserSettingsProvider.get__rootDocument()
18:16:26:384 => [INFO] [Orchestra.Services.ShellService] [5] Starting UiPath Studio v18.1.2.0 (18.1.2+Branch.master.Sha.3b224581b9ac129df72f18f3c9b8898d4810cfb3)
18:16:31:955 => [INFO] [UiPath.Workflow.Logging.StudioTraceListener] [5] CreateActivationContext default error: 14011
18:40:39:603 => [INFO] [Orchestra.Services.ShellService] [4] Starting UiPath Studio v18.1.2.0 (18.1.2+Branch.master.Sha.3b224581b9ac129df72f18f3c9b8898d4810cfb3)
18:40:50:934 => [INFO] [UiPath.Workflow.Logging.StudioTraceListener] [9] CreateActivationContext default error: 14011
18:44:20:671 => [INFO] [UiPath.Workflow.Logging.StudioTraceListener] [2] IUpdateManager: Starting automatic update
18:44:20:762 => [INFO] [UiPath.Workflow.Logging.StudioTraceListener] [2] CheckForUpdateImpl: Using existing staging user ID: c35000b5-6073-5c46-be4e-d1ce43f628c5
18:44:20:816 => [INFO] [UiPath.Workflow.Logging.StudioTraceListener] [2] CheckForUpdateImpl: Downloading RELEASES file from
18:44:20:877 => [INFO] [UiPath.Workflow.Logging.StudioTraceListener] [2] FileDownloader: Downloading url:
18:44:21:382 => [INFO] [Orchestra.LogHelper] [2]
18:44:21:382 => [INFO] [Orchestra.LogHelper] [2] **************************************************************************
18:44:21:382 => [INFO] [Orchestra.LogHelper] [2]
18:44:21:382 => [INFO] [Orchestra.LogHelper] [2] PRODUCT INFO
18:44:21:382 => [INFO] [Orchestra.LogHelper] [2]
18:44:21:383 => [INFO] [Orchestra.LogHelper] [2] Assembly: UiPath Studio
18:44:21:383 => [INFO] [Orchestra.LogHelper] [2] Version: 18.1.2.0
18:44:21:383 => [INFO] [Orchestra.LogHelper] [2] Informational version: 18.1.2+Branch.master.Sha.3b224581b9ac129df72f18f3c9b8898d4810cfb3
18:44:21:383 => [INFO] [Orchestra.LogHelper] [2]
18:44:21:383 => [INFO] [Orchestra.LogHelper] [2] Company: UiPath
18:44:21:383 => [INFO] [Orchestra.LogHelper] [2] Copyright: © UiPath
18:44:21:383 => [INFO] [Orchestra.LogHelper] [2]
18:44:21:383 => [INFO] [Orchestra.LogHelper] [2] **************************************************************************
18:44:21:383 => [INFO] [Orchestra.LogHelper] [2]
18:44:21:383 => [INFO] [Orchestra.LogHelper] [2]
18:44:21:383 => [INFO] [Orchestra.LogHelper] [2] **************************************************************************
18:44:21:383 => [INFO] [Orchestra.LogHelper] [2]
18:44:21:383 => [INFO] [Orchestra.LogHelper] [2] DEVICE INFO
18:44:21:383 => [INFO] [Orchestra.LogHelper] [2]
18:44:21:383 => [INFO] [Orchestra.LogHelper] [2] Platform: Win32NT
18:44:21:383 => [INFO] [Orchestra.LogHelper] [2] OS Version: 6.1.7601.65536
18:44:21:383 => [INFO] [Orchestra.LogHelper] [2] 64-bit OS: True
18:44:21:383 => [INFO] [Orchestra.LogHelper] [2] 64-bit process: False
18:44:21:383 => [INFO] [Orchestra.LogHelper] [2] Processor count: 4
18:44:21:383 => [INFO] [Orchestra.LogHelper] [2] System page size: 4096
18:44:21:383 => [INFO] [Orchestra.LogHelper] [2]
18:44:21:383 => [INFO] [Orchestra.LogHelper] [2] **************************************************************************
18:44:21:383 => [INFO] [Orchestra.LogHelper] [2]
18:44:21:383 => [ERROR] [Orchestra.LogHelper] [2] Application crashed | [AbandonedMutexException] System.Threading.AbandonedMutexException: Leaked a Mutex!
at Squirrel.SingleGlobalInstance.Finalize()
18:44:21:390 => [INFO] [Orchestra.DotNetPatchHelper] [2] An unhandled exception occurred, checking if it is a known KB issue: Leaked a Mutex!
18:44:21:390 => [INFO] [Orchestra.DotNetPatchHelper] [2] Below is a list of the last first chance exceptions that occurred. It might provide more information to the issue.
18:44:21:390 => [INFO] [Orchestra.DotNetPatchHelper] [2] ================================================================================================

I have followed the training and created a test process that just does a messagebox. Before I connect to Orchestrator this process will publish fine. Once I have created my robot and connect it to my local machine via the Uipath system tray icon the process no longer will publish and I get an error message saying:

Publishing the project has failed.

Error: A robot with user name ‘JMURP’ is not defined in Orchestrator

System.Exception: Publishing the project has failed.

Error: A robot with user name ‘JMURP’ is not defined in Orchestrator —> System.ServiceModel.FaultException: A robot with user name ‘JMURP’ is not defined in Orchestrator

Server stack trace:
at System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime operation, ProxyRpc& rpc)
at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object ins, Object outs, TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)

Exception rethrown at [0]:
at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
at UiPath.Models.IUiPathRemoteDuplexContract.PublishPackage(String packFilePath, Int32 timeoutSeconds)
at UiPath.Models.UiPathDuplexProxy.PublishPackage(String packFilePath, Int32 timeoutSeconds)
at UiPath.Workflow.ViewModels.MainViewModel.PackAndPush()
— End of inner exception stack trace —

This is the first time I have tried to use Orchestrator any help would be useful thanks

Have you linked Orchestrator to your Robot? If not do that first by Starting the UiRobot service in local services. Then create a Robot in Orchestrator and link its Robot key to you Machine. Then try to publish

Hi

Thanks for the response yes I connected in and it confirmed that the status is available, bur I still cant Publish.

Mail](Outlook) for Windows 10

Check that you Robot in the Orchestrator is sending heartbeats. If not Open system tray on your system click on Ui icon in the tray. That will open a popup enter robot key, machine name and platform URL in the same then click on connect and verify the same. Once it is connected you would be able to Publish the package

Hi yes it is sending heat beats. But can’t publish.

Try one thing create a whole new Robot with new keys in Orchestrator and then connect it to your Machine then see what happens

Hi I did reset the robot, created a new one and it still is not working. One thing that is interesting is that when I try to publish it is saying that JMURP robot is not available but when I created a new robot I did not call it that so it must be looking for a previous robot but not sure why.
Again the robot is showing as connected in the system tray and also on the orchestrator when I am trying to publish.