• Did you check the account that is running the command? In addition to the auto_fix, it could be a permissions/role issue:

    IF NOT EXISTS(SELECT * FROM sys.database_principals WHERE name = N'xxx')

    CREATE USER [xxx] FOR LOGIN [xxx]

    EXEC sp_addrolemember db_owner, [xxx]

    GO

    The login and db user permissions may exist - but after a refresh, the db user may not come over if it didn't exist on the original db and you would need to create it or give the login account permissions to the db.

    Even if it wasn't a refresh that caused it - it still sounds like the account that's running the truncate doesn't have sufficient rights to do so. Why the permissions changed, tho, you would have to determine. (e.g., Could the permissions have been manually changed?)