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\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" : ""

WebSocket Connection Issues

Dynamic Web TWAIN HTML5 edition uses WebSocket connection to communicate with the Dynamsoft Service. Each instance of the Dynamic Web TWAIN object creates its own Websocket connection. That means if you have multiple Dynamic Web TWAIN Objects, your browser will be maintaining multiple WebSocket connections. At the same time, if you are not proactively closing a connection, then the connection may take some time to close even after you have closed the scan page.

Apparently, the browser would be tasked with maintaining multiple Websocket connections at some point and not all browsers are designed to handle that. While modern browsers like Chrome, Firefox, etc. can handle tens or even more than a hundred WebSockets per server. IE can handle just 6 by default. Therefore, you may be surprised to find that IE reports the Dynamsoft Service is not installed even when you were just using it! And that report is due to the failure to create a 7th WebsSocket connection at that point.

Though it's not ideal, IE does provide a solution which is to configure the WebSocket connection limit in the Local Group Policy Editor as shown below

  1. Press the Windows Key + R key to open the Run dialog
  2. Type

and press Enter to open the Local Group Policy Editor

  1. Navigate to Administrative Templates > Windows Components > Internet Explorer > Security Features > AJAX

  2. Double click in the corresponding feature Maximum number of connections per server to enable the feature and change the default number to a larger number

results matching ""

    No results matching ""

    results matching ""

      No results matching ""