Skip to main content

GmInvokeResult

The outcome of a gameModelInvoke call (return value, applied writes, and any error).

type GmInvokeResult {
eventId: String!
functionName: String!
success: Boolean!
returnValueJson: String
mutationsApplied: [GmMutationApplied!]!
fault: PlayerFaultInfo
errorMessage: String @deprecated
policyBypassed: Boolean
}

Fields

GmInvokeResult.eventId ● String! non-null scalar

The id of the event logged for this invocation.

GmInvokeResult.functionName ● String! non-null scalar

The function that was invoked.

GmInvokeResult.success ● Boolean! non-null scalar

True if the invocation succeeded; false if it was rejected or errored.

GmInvokeResult.returnValueJson ● String scalar

JSON-encoded return value.

GmInvokeResult.mutationsApplied ● [GmMutationApplied!]! non-null object

The property writes that were applied (empty if none / on failure).

GmInvokeResult.fault ● PlayerFaultInfo object

Why the invocation failed, when it did: a stable code, whose problem it is, and whether retrying could help. Null when success is true. This is the field to branch on — it is the platform's blame attribution, and rendering is the game's decision.

GmInvokeResult.errorMessage ● String deprecated scalar

DEPRECATED

Read fault instead and choose your own wording. This field no longer carries the engine's error text and will be removed once no client depends on it.

A platform-authored sentence matching fault, safe to show a player. It carries no engine detail on purpose (decision D4): the failing expression, the timeout and the gas figures are in gameModelEvents and the fault record, where a developer reads them and a player does not.

GmInvokeResult.policyBypassed ● Boolean scalar

True when the caller asked for bypassPolicy and held manage_apps, so the function's invoke policy was NOT evaluated for this call. Null/false otherwise. An administrative invoke that did not set bypassPolicy was judged exactly like a player's.

Returned By

gameModelInvoke mutation