Let’s be honest for a moment here. Every Network Administrator or IT Tech HATES MYOB. Its unfortunate that we still see so many people using it when there are way better solutions in the cloud.

If you come across the error below you are in luck.


 AccountRight Application Error Report
 =====================================
 Application Version: 2013.3.15.5477
 Application File Version: 2013.3.15.5477
 Time: Friday, 30 January 2015 11:27:32 AM
Code:
 DataException (10000)
Message:
 The path is not valid. Check the directory for the database. [ Path = D:\MYOBPATH\MYOBFILE.myox ]
Stack Trace
 ----------------------------------
 1 : (MYOB.Huxley.API.HuxleySqlCeException)
 The path is not valid. Check the directory for the database. [ Path = D:\MYOBPATH\MYOBFILE.myox ]
 at MYOB.Huxley.BusinessLayer.Entities.HuxleyDataContext.OnCreated()
 at MYOB.Huxley.BusinessLayer.Entities.HuxleyDataContext..ctor(IDbConnection connection)
 at MYOB.Huxley.BusinessLayer.Core.DataContextFactory.GetContext(IConnection connection, Boolean readOnly, Boolean cachingEnabled, Boolean loadOptions)
 at MYOB.Huxley.ServiceModel.Server.Instance.ServerInstanceProvider.GetLocalKeyFileData(String libraryPath, ISAPIFileProfile& fileProfile, ICompanyFileLicence& licence)
 at MYOB.Huxley.ServiceModel.Server.Instance.ServerInstanceProvider.GetLocalCompanyFile(IApplication application, String sessionKey, String libraryPath)
 at MYOB.Huxley.ServiceModel.Server.Instance.ServerInstanceProvider.GetNetworkHostedInstance(Message message, IHuxleyConfigurationSettings configurationSettings)
 at MYOB.Huxley.ServiceModel.Server.Instance.ServerInstanceProvider.GetInstance(InstanceContext instanceContext, Message message)
 at System.ServiceModel.Dispatcher.InstanceBehavior.GetInstance(InstanceContext instanceContext, Message request)
 at System.ServiceModel.InstanceContext.GetServiceInstance(Message message)
 at System.ServiceModel.Dispatcher.InstanceBehavior.EnsureServiceInstance(MessageRpc& rpc)
 at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage41(MessageRpc& rpc)
 at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage4(MessageRpc& rpc)
 at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage31(MessageRpc& rpc)
 at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage3(MessageRpc& rpc)
 at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage2(MessageRpc& rpc)
 at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage11(MessageRpc& rpc)
 at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage1(MessageRpc& rpc)
 at System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)

First thing I did when we got this error was google it & check MYOB’s online support section/ forum posts. There was nothing. The only information there with the same error said to call the support center, I did & was told they couldn’t help me unless we paid for a support package which was $800. Of course my boss would not be happy with this so I set myself a goal to solve the issue.

After reverse engineering a config file in the installation directory I discovered MYOB was using Microsoft SQL Compact Edition for storing library meta data. This instantly made me smile because I knew I was in my forte area of the IT universe. A little more digging & I had found the database.  C:\ProgramData\MYOB\AccountRight\Servers

Now before you do anything you need to stop all the MYOB services running.  You can do this by going to your start menu & typing in the search box “services.msc” & hit enter. Find the MYOB services & stop them one by one by right clicking & selecting stop. Leave services open when you are done because you will need to start the services again in a moment.


MYOB1
After that you can rename the database. (just add old to the start of it) Then start the services again & open MYOB Account Right & you will see a new database has been created.

MYOB3

 

 

& now MYOB Account Right will work again.
The whole reason why this error occurs is because the MYOB SQL Compact database became corrupt & MYOB doesn’t have a automated tool that can detect this & fix it…