deepseek-ai/deepseek-harness · error
CreateRestrictedToken prerequisite failed: no logon SID foun
Error message
CreateRestrictedToken prerequisite failed: no logon SID found among ${groupCount} token groups What it means
Error "CreateRestrictedToken prerequisite failed: no logon SID found among ${groupCount} token groups" thrown in deepseek-ai/deepseek-harness.
Source
Thrown at packages/sandbox/sandbox-windows-acl/src/token.ts:76
const groups = Buffer.alloc(needed)
if (api.getTokenInformation(token, abi.TokenGroups, groups, groups.length, neededSlot) === 0) {
throwLastError(api, 'GetTokenInformation', 'TokenGroups')
}
const groupCount = groups.readUInt32LE(0)
for (let index = 0; index < groupCount; index++) {
const sidPtr = decodePtrAt(groups, abi.TOKEN_GROUPS_OFFSET + index * abi.SID_AND_ATTRIBUTES_SIZE)
const attributes = groups.readUInt32LE(abi.TOKEN_GROUPS_OFFSET + index * abi.SID_AND_ATTRIBUTES_SIZE + 8)
// >>> 0: JS bitwise & is signed 32-bit; SE_GROUP_LOGON_ID has bit 31 set.
const isLogonId = ((attributes & abi.SE_GROUP_LOGON_ID) >>> 0) === (abi.SE_GROUP_LOGON_ID >>> 0)
if (sidPtr === null || !isLogonId) continue
const sidLength = api.getLengthSid(sidPtr)
if (sidLength === 0) throwLastError(api, 'GetLengthSid', `logon SID group ${index}`)
const copy = allocBytes(sidLength)
if (api.copySid(sidLength, copy, sidPtr) === 0) throwLastError(api, 'CopySid', `logon SID group ${index}`)
return copy
}
throw new Error(`CreateRestrictedToken prerequisite failed: no logon SID found among ${groupCount} token groups`)
}
/**
* Create one well-known SID (68-byte buffer) and assert its validity.
* @param api - the binding table.
* @param type - the WELL_KNOWN_SID_TYPE to create.
* @returns the created SID pointer.
*/
export function makeWellKnownSid(api: Win32Bindings, type: number): NativePtr {
const sid = allocBytes(abi.SECURITY_MAX_SID_SIZE)
const sizeSlot = allocUint32()
encodeUint32(sizeSlot, abi.SECURITY_MAX_SID_SIZE)
if (api.createWellKnownSid(type, null, sid, sizeSlot) === 0) {
throwLastError(api, 'CreateWellKnownSid', `type ${type}`)
}
if (api.isValidSid(sid) === 0) throwLastError(api, 'IsValidSid', `CreateWellKnownSid type ${type}`)
return sid
}View on GitHub (pinned to b150a551b8)
Solutions
- Run under an interactive logon session whose token includes a logon SID; service or batch tokens without one cannot be restricted this way.
When it happens
Trigger: Thrown at packages/sandbox/sandbox-windows-acl/src/token.ts:76 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of deepseek-ai/deepseek-harness@b150a551b8 (2026-08-24).
Data as JSON: /api/errors/a56ba98b5e4fc70a.
Report an issue: GitHub.