Confirm Hardware Compatibility

In order to support the widest range of scanners, Dynamic Web TWAIN is designed strictly by the following standards

  • Windows: TWAIN Specification
  • macOS: TWAIN Specification & Image Capture Class
  • Linux: SANE

Therefore, as long as your scanner is compliant with the above standard on the specific OS, it is supported. Here we'll talk a bit on how to find a supported device.

  • macOS: Apple maintains a list themselves. Check out Printer and scanner software for macOS High Sierra, Sierra, El Capitan, Yosemite, and Mavericks

  • Linux: Check out SANE: Supported Devices

  • Windows: The TWAIN specification is a 25+ years old standard widely accepted by scanner vendors. So it is very easy to find a compatible scanner for your Windows clients because almost all models of all brands of scanners in the market nowadays support TWAIN. If you want to verify if a scanner driver is TWAIN compatible, you can refer to twain-certified-drivers. However, this list is not complete which means you might not find your device there. In this case, you can also use a tool to help verify whether your device is TWAIN-compliant. The tool is called Twacker and it's developed by the TWAIN Working Group. To use it to verify your device, the steps are

  • Download and install the tool

  • Open the installed program


  • Select your device


If your device is not listed, please check if the driver is installed. Or, you can try running Twacker as "Admin" since you may not have permission to access the data source.

  • Choose the settings and try scanning


  • If the scanning is successful without any errors, then your device should be TWAIN compliant. You can also try other commands and see how it works


If your scanner doesn’t work with TWACKER, please check your scanner model online and make sure you have installed the (latest) TWAIN driver.

Get Detailed Info of Issues

To catch more detailed information for troubleshooting issues with Dynamic Web TWAIN, there are a few things to try.

Collect Logs

For HTML5 edition for Windows/macOS/Linux, the log files are located in






Go > Applications > Dynamsoft > DynamsoftService > {installed version No.} > log


Go > Applications > Dynamsoft > DynamsoftServicex64 > {installed version No.} > log





To get logs for a particular issue, the recommended steps are

  1. Delete old logs
  2. Change LogLevel to 14 in the file C:\Windows\SysWOW64\Dynamsoft\DynamsoftService\log\DSConfiguration.ini
  3. Reproduce the issue


  1. Enabling the debug mode will slow down the performance of the scan page. Don't forget to change LogLevel back to 6 after collecting the logs.
  2. On macOS, try also to collect the system.log file. To locate it, type /var/log in Go > Go to Folder…

For ActiveX, the steps to collect the log are different

  1. Download the tool DebugView, unzip and open Dbgview.exe

  2. Set LogLevel to 1 in JavaScript

    DWObject.LogLevel = 1;
  3. In Dbgview.exe, click Ctrl + X to clear display

  4. Reproduce the issue in Internet Explorer

  5. In Dbgview.exe, click Ctrl + S to save the log file

Check out How to Read Log on how to read the log file.

Collect Dump files

On Windows, if the HTML5 edition of Dynamic Web TWAIN crashes, it'll generate a dump file automatically under C:\Windows\SysWOW64\Dynamsoft\DynamsoftServicex64\dump. To troubleshoot with the dump file, please send it to Dynamsoft Support Team and describe the issue in details (including screenshots or steps to reproduce the issue if possible).

How to Read Log

Question 1 : What are these log files for?

Answer :

dss.log --> For Dynamsoft Service

nw.log --> Details about the network traffic

wts.log --> For the client part of Dynamic Web TWAIN HTMl5 edition

wtss.log --> For the server part of Dynamic Web TWAIN HTMl5 edition

Question 2 : What info do we see if Dynamic Web TWAIN SDK is not doing anything?

Answer :

There is a regular polling going on every 30 seconds, in the log, it looks like this


[Process:  1716 Thread: 17652] [05/23/2018 17:43:45.075] [Debug-0]: CClientProxy::Send begin task=DefaultSourceName seq=18975 status=8 event=11
[Process:  1716 Thread: 17652] [05/23/2018 17:43:45.090] [Debug-0]: CClientProxy::Send end 0
[Process:  1716 Thread: 17652] [05/23/2018 17:44:15.150] [Debug-0]: CClientProxy::Send begin task=DefaultSourceName seq=18976 status=8 event=11
[Process:  1716 Thread: 17652] [05/23/2018 17:44:15.156] [Debug-0]: CClientProxy::Send end 0


[Process:  5364 Thread:  7536] [05/23/2018 18:01:20.930] [Debug-0]: CTwainServer::receive1 task=DefaultSourceName seq=18478 status=8 event=11

Question 3 : What does a command to the service look like? >

Answer : It looks like the following with "id" used to identify which client sent the command

cmd = [{
"id" : "467653534",
"method" : "GetImageByIndex",
"parameter" : [ 0, 581, 511 ]

Question 4 : What basic information can we get from the log? >

Answer :

  • The Operating system
Windows info: 6.2.9200 Pack: 0.0 Other:PID=2 Type=1 Mask=256
  • The version of Dynamsoft Web TWAIN (wts.log)
Activex Version info:32c0048, Dynamic Web TWAIN 14.0 Trial, 14, 0, 0, 0618, x64:0
  • The version of Dynamosft Service (dss.log)
Current version info: Dynamsoft Service 1, 4, 0, 0618.
  • The current LogLevel
Log Level = 14, 0.
  • Websocket listening ports
[Debug-0]: dwt_command, Websocket connection initialized.
[Info-0]: Create websocket context succeed at default, use_ssl = false!
[Info-0]: Start websocket service succeed. port = [18625], use_ssl = false.
[Process: 16784 Thread: 15400] [05/23/2018 17:56:44.554] [Info-0]: Websocket Listening starts at port = 18625, use_ssl = false
[Debug-0]: Get the port number and try creating websocket listening.
[Debug-0]: dwt_command, Websocket connection initialized.
[Info-0]: Create websocket context succeed at default, use_ssl = true!
[Info-0]: Add https service succeed! Succeed port = 18626, use_ssl = true.
[Process: 16784 Thread: 10740] [05/23/2018 17:56:46.794] [Info-0]: Websocket Listening starts at port = 18626, use_ssl = true
[Debug-0]: Get http service parameter
[Debug-0]: Get the port number and try creating websocket listening.
[Info-0]: Add http service succeed! Succeed port = 18622, use_ssl = false.
[Debug-0]: dwt_command, Websocket connection initialized.
[Info-0]: Create websocket context succeed at default, use_ssl = false!
[Info-0]: Start websocket service succeed. port = [18622], use_ssl = false.
[Process: 16784 Thread:  9508] [05/23/2018 17:56:48.071] [Info-0]: Websocket Listening starts at port = 18622, use_ssl = false
  • Requesting origin
  • Sequence in which commands are being called

  • How a command worked

result json = [{
    "description" : "User cancelled the operation.",
    "exception" : -1032,
    "id" : "667465648",
    "method" : "SelectSource",
    "result" : [ false ],
    "cmdId" : ""

results matching ""

    No results matching ""

    results matching ""

      No results matching ""