Samba Installation - v5.5.8 Nightmare

I think I’m slowly losing my mind. I’ve been trying to install Samba. 5.5.8 on a fresh system for testing since it was released…a month ago? I can’t remember exactly when but TOO long to be trying to get it to install. Someone please tell me I’m not losing my mind here.

I’ve tried installing it on 4 Different Computers at least 10 times, all fresh installs of windows 10 22H2 from 3 different install sources, with all updates installed as a stand alone system using the included SQL 2017 local database and example data.

Every single time I get the blue Samba Loading screen and ultimately this…

So naturally I check the log and if I’m reading this correctly I’ve got some kind of permissions issue. Here is the log file…

4/13/2023 10:14 AM

[General Info]

Application: SambaPOS
Version: 5.5.8
Region: en
DB: SQ
Machine: DESKTOP-NKMF94H
User: Owner
Date: 4/13/2023
Time: 3:14 PM

User Explanation:

Owner said “”

[Exception Info 1]

Top-level Exception
Type: System.Data.SqlClient.SqlException
Message: CREATE FILE encountered operating system error 5(Access is denied.) while attempting to open or create the physical file ‘C:\Users\OwnerSambaPOS5.mdf’.
CREATE DATABASE failed. Some file names listed could not be created. Check related errors.
Source: .Net SqlClient Data Provider
Stack Trace: at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action1 wrapCloseInAction) at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action1 wrapCloseInAction)
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
at System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async, Int32 timeout, Boolean asyncWrite)
at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry) at System.Data.SqlClient.SqlCommand.ExecuteNonQuery() at System.Data.Entity.Infrastructure.Interception.DbCommandDispatcher.<>c.<NonQuery>b__4_0(DbCommand t, DbCommandInterceptionContext1 c)
at System.Data.Entity.Infrastructure.Interception.InternalDispatcher1.Dispatch[TTarget,TInterceptionContext,TResult](TTarget target, Func3 operation, TInterceptionContext interceptionContext, Action3 executing, Action3 executed)
at System.Data.Entity.Infrastructure.Interception.DbCommandDispatcher.NonQuery(DbCommand command, DbCommandInterceptionContext interceptionContext)
at System.Data.Entity.SqlServer.SqlProviderServices.<>c__DisplayClass52_0.b__0(DbConnection conn)
at System.Data.Entity.SqlServer.SqlProviderServices.<>c__DisplayClass60_0.b__0()
at System.Data.Entity.Infrastructure.DefaultExecutionStrategy.Execute(Action operation)
at System.Data.Entity.SqlServer.SqlProviderServices.UsingConnection(DbConnection sqlConnection, Action1 act) at System.Data.Entity.SqlServer.SqlProviderServices.UsingMasterConnection(DbConnection sqlConnection, Action1 act)
at System.Data.Entity.SqlServer.SqlProviderServices.CreateDatabaseFromScript(Nullable1 commandTimeout, DbConnection sqlConnection, String createDatabaseScript) at System.Data.Entity.SqlServer.SqlProviderServices.DbCreateDatabase(DbConnection connection, Nullable1 commandTimeout, StoreItemCollection storeItemCollection)
at System.Data.Entity.Core.Common.DbProviderServices.CreateDatabase(DbConnection connection, Nullable1 commandTimeout, StoreItemCollection storeItemCollection) at System.Data.Entity.Core.Objects.ObjectContext.CreateDatabase() at System.Data.Entity.Migrations.Utilities.DatabaseCreator.Create(DbConnection connection) at System.Data.Entity.Migrations.DbMigrator.EnsureDatabaseExists(Action mustSucceedToKeepDatabase) at System.Data.Entity.Migrations.DbMigrator.Update(String targetMigration) at System.Data.Entity.Internal.DatabaseCreator.CreateDatabase(InternalContext internalContext, Func3 createMigrator, ObjectContext objectContext)
at System.Data.Entity.Internal.InternalContext.CreateDatabase(ObjectContext objectContext, DatabaseExistenceState existenceState)
at System.Data.Entity.Database.Create(DatabaseExistenceState existenceState)
at Samba.Persistance.Data.Initializer.Create(CommonDbContext context)
at Samba.Persistance.Data.Initializer.InitializeDatabase(DataContext context)
at System.Data.Entity.Internal.InternalContext.<>c__DisplayClass66_01.<CreateInitializationAction>b__0() at System.Data.Entity.Internal.InternalContext.PerformInitializationAction(Action action) at System.Data.Entity.Internal.InternalContext.PerformDatabaseInitialization() at System.Data.Entity.Internal.LazyInternalContext.<>c.<InitializeDatabase>b__58_0(InternalContext c) at System.Data.Entity.Internal.RetryAction1.PerformAction(TInput input)
at System.Data.Entity.Internal.LazyInternalContext.InitializeDatabaseAction(Action`1 action)
at System.Data.Entity.Internal.LazyInternalContext.InitializeDatabase()
at System.Data.Entity.Internal.InternalContext.Initialize()
at System.Data.Entity.Internal.InternalContext.ForceOSpaceLoadingForKnownEntityTypes()
at System.Data.Entity.DbContext.System.Data.Entity.Infrastructure.IObjectContextAdapter.get_ObjectContext()
at Samba.Infrastructure.Data.SqlData.EFWorkspace…ctor(CommonDbContext context)
at Samba.Persistance.Data.WorkspaceFactory.Create()
at Samba.Presentation.Services.Common.DataGeneration.DataCreationService.get_Workspace()
at Samba.Presentation.Services.Common.DataGeneration.DataCreationService.ShouldCreateData()
at Samba.Presentation.Services.Common.DataGeneration.DataCreationService.CreateData()
at Samba.Presentation.Bootstrapper.InitializeShell()


[Assembly Info]

mscorlib, Version=4.0.0.0
PresentationFramework, Version=4.0.0.0
PresentationCore, Version=4.0.0.0
System, Version=4.0.0.0
WindowsBase, Version=4.0.0.0
Samba.Services, Version=5.5.8468.18572
System.ComponentModel.Composition, Version=4.0.0.0
System.Configuration, Version=4.0.0.0
DevExpress.Xpf.Core.v17.2, Version=17.2.13.0
System.Xaml, Version=4.0.0.0
Microsoft.Practices.Prism.MefExtensions, Version=4.0.0.0
Samba.Presentation.Services, Version=5.5.8468.18575
Samba.Presentation.Common, Version=5.5.8468.18575
System.Drawing, Version=4.0.0.0
Samba.Domain, Version=5.5.8468.18571
Microsoft.Practices.Prism, Version=4.0.0.0
Samba.Infrastructure, Version=5.5.8468.18569
System.Core, Version=4.0.0.0
DevExpress.Data.v17.2, Version=17.2.13.0
Microsoft.Practices.ServiceLocation, Version=1.0.0.0
Samba.Localization, Version=5.3.8468.18570
Samba.Persistance, Version=5.5.8468.18572
FastButton, Version=1.0.0.0


[System Info]

Operating System
-Microsoft Windows 10 Pro
–CodeSet = 1252
–CSDVersion =
–CurrentTimeZone = -300
–FreePhysicalMemory = 1909284
–OSArchitecture = 64-bit
–OSLanguage = 1033
–ServicePackMajorVersion = 0
–ServicePackMinorVersion = 0
–Version = 10.0.19045

Machine
-DESKTOP-NKMF94H
–Manufacturer = HP-Pavilion
–Model = NY645AA-ABA MS213
–TotalPhysicalMemory = 4024881152
–UserName = DESKTOP-NKMF94H\Owner


######################### E N D #########################

The only way I can get samba to load is to give “Everyone” full access to my SambaPOS install folder AND Documents. For testing purposes that doesn’t bother me so much because It’s one isolated PC that’s behind a firewall and off for the most part unless I’m testing. BUT…

Now I have Samba running as it should (or so I thought). Nope. I have absolutely no access to GraphQL on this machine. It’s like it never existed. I can send mutations and whatnot to my production server from my laptop, but not the test machine. I have the + and blah blah all the settings have been verified and reverified and reverified and reverified!

This has become a complete nightmare. What in the hell am I missing here or have I finally gone bat shit crazy? Please tell me someone has run into this.

Thanks so much for any input you may have!

------Edit------

To be noted. I have tried the installation 3 times using SQL Server 2017 Express. I just got sick of installing it over and over again so I’m trying to at least get Samba to load correctly the first time before bothering with SQL Express again.

1 Like

For 2017, files are typically located at %PROGRAMFILES%\Microsoft SQL Server\MSSQL14.SQLEXPRESS\MSSQL\DATA. I’m not sure why SQL Server is trying to create a db in the Users directory. Does the above directory exist? If so, do you see any files in there?

From version 5.5+ the GraphQL API requires a separate license.

EDIT: maybe try creating the database manually in SSMS or whatever IDE you like and make sure the files are placed where they should, then launch SambaPOS to populate the db.

3 Likes

Make sure the SQL service is running. Try connecting to the database first with SSMS.

1 Like

Strange. It shouldn’t be trying to create a database there.

Did you set that user directory for the mdf file when installing sql server? If so you need to redo permissions you will run into problems. It’s best to let it install to default directory.

Don’t forget to run licensing.exe too

1 Like

try this from another older forum post, in your case it should be C:\Users\Owner\SambaPOS5.mdf

2 Likes

All SQL services are running correctly and I can connect to the database from other computers on my network running 5.5.4. (Ultimately I’m trying to update from 5.5.4 to 5.5.8 so when I initially restore the database to SQL Express on the machine in question I’m able to connect to it from my production terminals)

Stand By on this one. I will reinstall SSMS again and let you know. When I say it’s trying to create it in the documents directory I’m referring to the initial installation of Samba using a Local Database, not SQL Express.

This could be my issue. I do have both licenses so how do you test with this new licensing process? Will GQL not work at all when you’re on a demo database?

I don’t have anything I can screenshot because I already changed the permissions which allowed Samba to create a local database. But I did see this post and when I went into sambasettings.txt there was no entry at all for a database because it couldn’t create one due to the permissions issue (which I still can’t quite figure out.)

Gql requires a license or it won’t work. To license Sambapos and all other products including gql run licensing.exe on the server.

Never used localdb as it’s not multi-tenant… I just install SambaPOS without anything else selected when installing, then start the application. It will show a message under the keypad saying that it’s running without a db. Then I go into management and configure the connection.

If it’s SQL Server LocalDb 2017, I recall seeing that there were issues with using that in later versions. I’m not sure if that’s still the case.

I don’t believe the GQL API will not work in demo mode. If you have the API license, you’ll need to run the licensing application to enable API access as Jesse suggests.

1 Like

Localdb 2017 needs the service packs installed. The base version has a bug preventing it from working

1 Like

I’ve only encountered such issue when someone do all or part of the install using an admin account, and then tries to run SambaPos as a regular user. This is actually correct behaviour in Windows, issue not related to SambaPos.

I’ve learnt a long time ago to never run install or setup as admin.

1 Like

Memo - If I run the licensing application will it not try to transfer my license to the testing machine? Meaning both Pro and GQL? If so - is it bad practice to transfer these licenses back and forth while testing or am I making this more than it should be? I just don’t want to cause any grief on the other end if I can avoid it.

You’d have to clear the license, I would imagine. Jesse would know more than I in this instance.

Paging @Jesse

@cpeckat create a test account on CP and private msg me what the email is I can assign you a license for testing purposes

Yes it cause issues to do that. You shouldn’t do that.