Components won't be refreshed as ServiceCenter isn't available in the Controller Node

In some situations when publishing the running version of a solution you will get the following warning in the Refresh References step:

"Components won't be refreshed as Service Center isn't available in the Controller Node."

People are often baffled by this warning and want to know why it's there and what does Service Center on the Controller node have to do with refreshing references. This post serves to shed some light on this issue.

This all has to do with how references are refreshed during a solution publish, so... how are they refreshed?

Step 1) The Service Center publishing the solution contacts Deployment Controller Service to refresh the references
Step 2) Deployment Controller Service calls local Service Studio to refresh references
Step 3) This is done against on the Controller machine

The last step is the reason Service Center needs to be installed in the Deployment Controller machine for this functionality to work, since Service Studio talks with the Platform to refresh references via Service Center Web Services. If Service Center is not deployed on the Deployment Controller, Service Studio will not be able to contact those web services.

So, when can this happen?

1) When you have a Deployment Controller only node. Obviously if there is no eSpace  deployed on the Controller, Service Center will also not be deployed there
2) When you have ServiceCenter in a Zone which does not include the Deployment Controller node.

Please note that in a Java installation you might also get this warning, but since Service Studio is a Windows only application, it currently isn't supported to refresh references and upgrade eSpaces automatically on a Java installation even if you don't get this warning.

If you have further questions regarding this matter, feel free to ask them in this thread.

Best regards,
Ricardo Silva
Hi Ricardo,

Thank you for this post. It is exactly what I was looking for! My scenario is the one you described in 1) except I do have Service Center installed on the Controller only node   Why is it then that I still get that message on every LifeTime deploy?


If you read carefully the post those 2 scenarios are the ones where it will not work.
There are no automatic refreshes on "Controller Only nodes".

Still, I don't see why lifetime should be trying to do refeshes anyway (Since they only supposed to happen when publish the "Current Version" of a solution directly in Service Center and lifetime doesn't allow staging of broken referenced modules),

João Rosado
Hi João, thanks for the reply.

Actually I got confused with having Service Center running on a Controller Node!!?

Today, during a revision patch I finally noticed my mistake because whenever I tried to publish SystemComponents.osp I got a message saying "Version Mismatch. Service Center was not upgraded to Platform Server Please contact your Service Center administrator to run 'SCInstall.bat' "

I then checked Service Center on my browser and there it was: the latest version   So, what could be wrong?

I then tried to do the installation again through Configuration Tool. All good. But then the same message again showed up whenever I tried to publish SystemComponents.osp  ...same with running SCInstall.bat through the command line.

So what was the problem? Recalling my initial server installation, I somehow forgot that Deployment Service should have been toggled off. And I had some eSpaces published there since IIS virtual directories were mapped. So...could it be that I really had an old Service Center version running loose in my Deployment Controller??? Indeed. After proceeding with System Components installation on a frontend-server everything went smooth. Mind you: installation checklist even mentions this step should be done on a Frontend-Server! Doh!! RTFM!!!

An idea that occurred to me would be to have a Version.txt file placed in Service Center directory, just like Platform Server and Development Environment directories. As mentioned above, the platform version posted in Service Center's sidebar didn't help to debug this issue at all...

I hope this troubleshooting episode can help you in the future, folks. Cheers!

I have seen cases where users have everything apparently correctly set, but this warning is still displayed. Please take the following into consideration when facing such a scenario:

For this warning to be omitted, the Controller node needs to be identified as a Controller

In particular, Service Center executes a verification to check if a given server is the controller node. If that verification fails for the Controller node, Service Center will conclude that that:

  1. That node is not the Controller; therefore
  2. No Controller node exists; therefore
  3. Report that Service Center is not available in the Controller node.

Please consider the following configuration values:

  • Node_Name
    • Name of a given FE
    • Populated automatically, according to the FE's configurations, when registering the FE in the Configuration Tool (tab Network > Local IP Address)
    • Can be consulted under OSSYS_SERVER.NAME
  • Node_IP_Address
    • IP Address of a given FE
    • Configured when registering the FE in the Configuration Tool (tab Network > Local IP Address)
    • Can be consulted under OSSYS_SERVER.IP_ADDRESS
  • Controller_HostName
    • Name of the Controller node
    • Configured in the Configuration Tool (tab Controller > Deployment Controller Server)
    • Can be consulted with the following query:
      select * from ossys_parameter where name like 'CompilerService.HostName';

To make sure that the Controller node is detected as such by Service Center, and therefore ensure that modules can be correctly refreshed by the Controller, you have to ensure that at least one of the following conditions is True:

  1. Node_Name = Controller_HostName
  2. Node_IP_Address = Controller_HostName

  3. Node_IP_Address = and Controller_HostName = localhost

  4. Node_Name = and Controller_HostName = localhost

  5. Node_IP_Address = localhost and Controller_HostName =

  6. Node_Name = localhost and Controller_HostName =

Important Note: Any potential configuration corrections should be executed at the level of the Configuration Tool (Node_IP_Address, Controller_HostName) or server (Node_Name).
Changing values directly in the database is not supported and can lead to severe malfunction of the OutSystems Platform.