Report a Problem
Collect SDK logs
If you find an issue with the Teya SDK app, please contact us and include logs from the SDK.
To prepare the logs to be sent, your application should send a request to make the SDK zip all available log files.
You can do that like so: (following the same C# example as on Getting started)
public async Task<JsonElement> PrepareLogs()
{
return await SendRequestAsync("zipLogs");
}
The SDK app will respond to this request with a JSON object in the "result" field of the json-rpc message like this:
{
"type": "zipLogs->response",
"zipPath": "C:\\Users\\HomeLaptop\\AppData\\Local\\TeyaEposIntegrationsApp\\logs\\teya_app_2025-07-02_to_2025-07-31_12-12-55.zip"
}
And you can use this path to work with the zip file and send it to us.
Teya screens are slow to draw
On some tills the Teya payment screen is slow to appear, or its loading animation stutters while a payment is in progress. If you see that, the machine's graphics stack is worth checking before anything else.
The Teya SDK app draws its screens through Skiko, the rendering layer it runs on. Skiko chooses a graphics backend when it starts. On Windows it prefers DirectX, which goes through the machine's graphics card and its driver. On a machine with a working graphics card that is the fastest path and needs no configuration.
Change the rendering backend
Skiko reads the SKIKO_RENDER_API environment variable. The Teya SDK app inherits the environment of the process that starts it, so set the variable on the ProcessStartInfo you already use to launch it. UseShellExecute must stay false for Environment to be applied.
var processStartInfo = new ProcessStartInfo
{
FileName = "path\\to\\executable.exe",
RedirectStandardInput = true,
RedirectStandardOutput = true,
UseShellExecute = false
};
processStartInfo.Environment["SKIKO_RENDER_API"] = "SOFTWARE_FAST";
var process = Process.Start(processStartInfo);
You can also set the variable machine-wide, under System Properties then Environment Variables, as long as it is set before your application starts.
SOFTWARE_FAST is the value to try first. These are the values Windows accepts:
| Value | What it does |
|---|---|
SOFTWARE_FAST |
Draws on the CPU. The usual choice for a machine with no graphics card or a broken driver. |
SOFTWARE_COMPAT |
Draws on the CPU as well, more compatible but slower. |
DIRECT3D |
The Windows default, so setting it only pins the machine to it. |
OPENGL |
Only on Windows x64. On Windows on ARM the SDK app fails to start with this value. |
ANGLE |
Needs the ANGLE libraries present on the machine. Without them Skiko falls back to another backend. |
The value must match exactly, including case. software_fast, or a value with a space at the end, is treated as unknown and the default is used instead, with nothing said about it.
Confirm the value arrived
The Teya SDK app records its rendering configuration near the top of teya_app.log, in the zip that zipLogs produces:
Render API: SKIKO_RENDER_API='SOFTWARE_FAST', skiko.renderApi='null', effective='SOFTWARE_FAST'