diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 98fc2a82..d1c7b175 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -8,7 +8,7 @@ on: push: branches: - master - # - preview + - preview # Allows you to run this workflow manually from the Actions tab workflow_dispatch: diff --git a/_articles/faq/chromium-142-local-network-access-issue.md b/_articles/faq/chromium-142-local-network-access-issue.md index 97c832a0..7d105bb9 100644 --- a/_articles/faq/chromium-142-local-network-access-issue.md +++ b/_articles/faq/chromium-142-local-network-access-issue.md @@ -7,7 +7,7 @@ keywords: Dynamic Web TWAIN, Error Troubleshooting, CORS, unknown address space, breadcrumbText: Error message - Permission was denied for this request to access the unknown address space description: CORS unknown address space date: 2025-11-04 17:21:42 +0800 -last_modified: 2025-11-04 17:21:42 +0800 +last_modified: 2025-11-05 17:26:42 +0800 --- # Error Troubleshooting @@ -15,38 +15,41 @@ last_modified: 2025-11-04 17:21:42 +0800 > [!IMPORTANT] > This is a newly developing issue, and as such the information in this article may change over time. -## Error message - Access to fetch at `https://127.0.0.1:18623` or `http://127.0.0.1:18622` has been blocked by CORS policy: Permission was denied for this request to access the unknown address space. +## Error message - CORS Errors caused by local network access permissions when using Chromium 142 and later -### Symptom +### Overview -When using Chromium-based browsers version 142 or later (released on October 28th, 2025), including Chrome, Edge, Brave, and Opera, the Dynamsoft Web TWAIN Service may fail to function properly: +Starting in **Chromium-based browsers v142+** (released Oct 28, 2025)—including Chrome, Edge, Brave, and Opera—Dynamsoft Web TWAIN Service may not work as expected due to new local-network security rules. -- Phenomenon 1: the browser prompts users to download the service installer even though it is already installed. +### Symptoms -![DWT_installer.png](/assets/imgs/DWT_installer.png) +You may experience one or more of the following: + +***1. Service installer repeatedly prompted*** -- Phenomenon 2: the initialization succeeds, but scanning or loading images results in blank images. +The browser prompts you to download/install the service even though it is already installed. +![DWT_installer.png](/assets/imgs/DWT_installer.png) -Open the browser console (press F12, then go to the Console tab), you should see the following error message: +***2. Initialization succeeds, but scan/load shows blank images*** +The browser console (F12 → Console) shows a CORS rejection similar to: ```shell Access to fetch at 'https://127.0.0.1:18623/fa/VersionInfo?ts=1761893667670' from origin 'https://your-domain.com' has been blocked by CORS policy: Permission was denied for this request to access the `unknown` address space. ``` -### Cause +### Root Cause -In Chromium 142 Google introduced a new [Local Network Access security policy](https://chromestatus.com/feature/5152728072060928). Requests from web pages to local addresses such as 127.0.0.1 or localhost get blocked unless explicit permission is granted. +Chromium 142 introduces a new [Local Network Access security policy](https://chromestatus.com/feature/5152728072060928) requirement. +Requests from web pages to loopback addresses such as `localhost` / `127.0.0.1` are blocked unless the user (or an admin policy) explicitly grants access. -This affects the Dynamic Web TWAIN Service which relies on local services for communication. +Because Dynamic Web TWAIN communicates with a local service, these restrictions can prevent normal operation. ### Resolution -***Step 1: (For All End Users)*** - -- Navigate to your Dynamic Web TWAIN web interface - -- Click the lock icon (or settings icon) next to your site URL in the browser’s address bar. +***1. To Manually Correct This in Chrome*** +- Navigate to your Dynamic Web TWAIN page. +- Click the lock/settings icon in the browser address bar. - Ensure that **Local Network Access** is enabled. ![local-network.png](/assets/imgs/local-network.png) @@ -54,31 +57,37 @@ This affects the Dynamic Web TWAIN Service which relies on local services for co > [!NOTE] > If you're unable to restore functionality after enabling 'Local Network Access,' please contact [Dynamsoft](https://www.dynamsoft.com/contact/). -***Step 2: (For Developers Only)*** +***2. (For Admins) To Apply This Setting Across an Enterprise*** + +Enterprise administrators can deploy a Chrome and/or Edge policy to set the "Local Network Access" setting to "Allow" for your website. -**Option 1:** +Please refer to: +* [Chrome Enterprise Policy List & Management Documentation](https://chromeenterprise.google/policies/#LocalNetworkAccessAllowedForUrls) +* [Microsoft Edge Browser Policy Documentation](https://learn.microsoft.com/en-us/deployedge/microsoft-edge-browser-policies/localnetworkaccessallowedforurls) -You can check the permission programmatically: +***3. Developer Notes*** + +**a) Check Permission Programmatically** ```javascript let status = await navigator.permissions.query({ name: "local-network-access" }); console.log(status.state); ``` -If the permission is not granted, prompt users to manually enable it (Chrome settings → Privacy and security → Site settings → Local network access). +If not granted, guide users to: + +Chrome → Settings → Privacy and Security → Site Settings → Local network access + +**b) If Running Inside an `iframe`** -> [!WARNING] -> If Dynamic Web TWAIN is running in an iframe, ensure the iframe element includes the following attribute: +> [!IMPORTANT] +> If your site is embedded in an iframe, you MUST explicitly allow local-network access. +Please explicitly allow `local-network-access` in the attributes of the iframe: ```html ``` -**Option 2: (For Enterprise Users)** - -Enterprise administrators can allow specified URLs to access local resources through Chrome’s Enterprise Policy configuration. -Refer to: [Chrome Enterprise Policy List & Management | Documentation](https://chromeenterprise.google/policies/#LocalNetworkAccessAllowedForUrls) - -### Planning +### Roadmap Dynamsoft plans to add a feature that automatically detects local service connectivity and permission status. If the connection is blocked, users will be prompted with a message and directed to this FAQ page. diff --git a/_articles/faq/failed-to-load-resource.md b/_articles/faq/failed-to-load-resource.md index 357306e0..d65a61e2 100644 --- a/_articles/faq/failed-to-load-resource.md +++ b/_articles/faq/failed-to-load-resource.md @@ -7,7 +7,7 @@ keywords: Dynamic Web TWAIN, Error Message, Failed to load resource, CERT INVALI breadcrumbText: Error Message - Failed to load resource description: Error Message - Failed to load resource date: 2021-12-01 17:04:03 +0800 -last_modified: 2025-10-11 15:23:24 +0800 +last_modified: 2025-11-05 15:23:24 +0800 --- # Error Troubleshooting @@ -22,7 +22,7 @@ You get an error message that says **"Failed to load resource: net::ERR_CERT_DAT By default, "127.0.0.1" is used for service connection. "127.0.0.1" uses a self-signed SSL certificate without an expiry date. It is installed to your system so that the browser can trust it. If your environment requires high level security, self-signed certificates may not be accepted. Moreover, it is not easy to install the self-signed certificate for systems like Chrome OS. -In this case, we provide a domain, "local.dynamsoft.com", which points to "127.0.0.1". It has a VeriSign’ed certificate that has an expiry date. The most recent expired "local.dynamsoft.com" certificate expired on 2024 November 19th, and the latest certificate will expire on 2025 November 20th. +In this case, we provide a domain, "local.dynamsoft.com", which points to "127.0.0.1". It has a VeriSign’ed certificate that has an expiry date. The most recent expired "local.dynamsoft.com" certificate expired on 2025 November 20th, and the latest certificate will expire on 2026 November 21st. > ___Please note:___ _all official certificates issued by 3rd party come with an expiry date - generally one year. This means that each year the certificate will need to be updated if local.dynamsoft.com is used._ @@ -39,11 +39,39 @@ In this case, we provide a domain, "local.dynamsoft.com", which points to "127.0 If you have to use "local.dynamsoft.com", the following methods can be taken: - - Method 1. Click here to download the new certificate and use the new server.pem.ldsc & server_key.pem.ldsc to replace the old one in the `cert` folder under the service's [installation folder](/_articles/extended-usage/dynamsoft-service-configuration.md#installation-folder). Then restart Dynamic Web TWAIN Service. - - - Method 2. [Contact Dynamsoft](/_articles/about/getsupport.md){:target="_blank"} for a new service installer for client-side. Please specify the exact service version build number found from the version your client currently has installed. - - - Method 3. You can also generate the certificate by yourself. Check out this [post](/_articles/faq/change-dynamsoft-service-certificate.md). + - Method 1.Use the following links to download and install the new Dynamic Web TWAIN Service Installer. + - For Windows + > Choose between Admin (requires admin privileges) or Personal (for individual users). + - Version 19.2 + - [Windows Installer (Admin)](https://download2.dynamsoft.com/Demo/DWT/Resources/dist/19.2/DynamicWebTWAINServiceSetup.msi) + - [Windows Installer (Personal)](https://download2.dynamsoft.com/Demo/DWT/Resources/dist/19.2/DynamicWebTWAINServiceSetup.exe) + - Version 18 + - [Windows Installer (Admin)](https://download2.dynamsoft.com/Demo/DWT/Resources/dist/18.5.2/DynamsoftServiceSetup.msi) + - [Windows Installer (Personal)](https://download2.dynamsoft.com/Demo/DWT/Resources/dist/18.5.2/DynamsoftServiceSetup.exe) + - For macOS + > Use the installer matching your SDK version. + - [macOS Installer v19.2](https://download2.dynamsoft.com/Demo/DWT/Resources/dist/19.2/DynamicWebTWAINServiceSetup.pkg) + - [macOS Installer v18](https://download2.dynamsoft.com/Demo/DWT/Resources/dist/18.5.2/DynamsoftServiceSetup.pkg) + - For Linux + > Select the installer format based on your distribution type. + - RPM Packages (Red Hat, Fedora, CentOS, etc.) + - [Linux RPM Installer v19.2](https://download2.dynamsoft.com/Demo/DWT/Resources/dist/19.2/DynamicWebTWAINServiceSetup.rpm) + - [Linux RPM Installer v18](https://download2.dynamsoft.com/Demo/DWT/Resources/dist/18.5.2/DynamsoftServiceSetup.rpm) + - DEB Packages (Ubuntu, Debian, etc.) + - [Linux DEB Installer v19.2](https://download2.dynamsoft.com/Demo/DWT/Resources/dist/19.2/DynamicWebTWAINServiceSetup.deb) + - [Linux DEB Installer v18](https://download2.dynamsoft.com/Demo/DWT/Resources/dist/18.5.2/DynamsoftServiceSetup.deb) + - ARM64 Architecture + - [Linux ARM64 DEB Installer v19.2](https://download2.dynamsoft.com/Demo/DWT/Resources/dist/19.2/DynamicWebTWAINServiceSetup-arm64.deb) + - [Linux ARM64 DEB Installer v18](https://download2.dynamsoft.com/Demo/DWT/Resources/dist/18.5.2/DynamsoftServiceSetup-arm64.deb) + - MIPS Architecture + - [Linux MIPS DEB Installer v19.2](https://download2.dynamsoft.com/Demo/DWT/Resources/dist/19.2/DynamicWebTWAINServiceSetup-mips64el.deb) + - [Linux MIPS DEB Installer v18](https://download2.dynamsoft.com/Demo/DWT/Resources/dist/18.5.2/DynamsoftServiceSetup-mips64el.deb) + + - Method 2. Click here to download the new certificate and use the new server.pem.ldsc & server_key.pem.ldsc to replace the old one in the `cert` folder under the service's [installation folder](/_articles/extended-usage/dynamsoft-service-configuration.md#installation-folder). Then restart Dynamic Web TWAIN Service. + + - Method 3. [Contact Dynamsoft](/_articles/about/getsupport.md){:target="_blank"} for a new service installer for client-side. Please specify the exact service version build number found from the version your client currently has installed. + + - Method 4. You can also generate the certificate by yourself. Check out this [post](/_articles/faq/change-dynamsoft-service-certificate.md).