When trying to Assign Item to a file, this can sometimes result in this message.
Error 155. "Illegal null parameter passed to server."
In the servers vlogs you can see this message.
Error: Soap Exception ( mesg-id = xxxxxxxxxxx )
Exception: IllegalNullParam [155]
Stacktrace:
Server stack trace:
at Connectivity.Product.Services.ItemService.GetItemFileLinks(Int64[] itemIterIds, ItemFileLinkTypeOptions linkTypeOptions)
at System.Runtime.Remoting.Messaging.Message.Dispatch(Object target)
at System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg)
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 Connectivity.Product.Services.ItemService.GetItemFileLinks(Int64[] itemIterIds, ItemFileLinkTypeOptions linkTypeOptions)
at Connectivity.Web.Services.v18.ItemService.GetItemFileAssociationsByItemIds(Int64[] itemIds, ItemFileLinkTypeOptions linkTypeOptions)
at SyncInvokeGetItemFileAssociationsByItemIds(Object , Object[] , Object[] )
at System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance, Object[] inputs, Object[]& outputs)
at System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage31(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)
This can be reproduced by checking in a file, starting the Assign Item wizard and breaking the connection to the Vault Server, by either disconnecting the client from the server or by killing the power on the client, (to simulate a Blue Screen or client application crash). Then, once the client machine is reconnected, trying to Assign Item to the file again.
When a client begins the Assign item, the Item Number is locked, to prevent other clients from consuming the same Item Number until the original requestors Assign Item is complete. If the connection is broken before they either complete the operation or cancel it, the Item will remain locked until the Vault Server Task "Item Lock Cleanup" is executed.
This behaviour is intentional and is designed to prevent a second user from consuming the same Item Number by mistake.
There are other causes of the Error 155, as you will discover if you search for the error, but ensure that the "Item lock cleanup" process has executed before logging a support case.
In the ADMS Console, View Server Tasks will display when the "Item Lock cleanup" background process is configured to start. The default is every 1 day @ 0300. It is possible re-configure this, but not recommended.
If the time is reconfigured to during business hours, there is a chance that a user could begin to Assign Item on a file, "Item Lock cleanup" runs, then a second client attempts the same action and could consume the same Item Number, this means that one of the users will encounter an error before they complete the Assign Item command.