Skip to content

Fix favicon CORS failures and libcurl transport connection issues#18

Draft
Copilot wants to merge 6 commits intomainfrom
copilot/fix-favicons-loading-issue
Draft

Fix favicon CORS failures and libcurl transport connection issues#18
Copilot wants to merge 6 commits intomainfrom
copilot/fix-favicons-loading-issue

Conversation

Copy link
Contributor

Copilot AI commented Feb 1, 2026

  • Issue 1: Fix favicon loading in tabbar (CORS issues)

    • Update sanitizeUrl function in index.html to allow data: protocol URLs for base64-encoded favicon images
    • Update extractPageInfo in client.js to properly detect external favicon URLs and proxy them via encodeProxyUrl() instead of using them directly
    • External URLs are now correctly identified by comparing origin with location.origin
    • Use existing constants (SCRAMJET_PREFIX, UV_PREFIX) for proxy path detection
    • Added isSafeFaviconUrl() helper function to validate URLs before fetch
    • Added safety checks in fetchFaviconAsDataUrl() to reject external URLs (CORS prevention)
    • Updated updatePageInfo() to only use favicon URLs as fallback if they are safe
  • Issue 2: Fix libcurl transport not connecting correctly after first search

    • Add forceRefresh parameter to ensureTransportConfigured() to allow forcing transport reconfiguration
    • Add proper error handling with state reset when transport configuration fails
    • Force refresh transport on each new page navigation (loadProxiedUrlScramjet and loadProxiedUrlUltraviolet) to ensure fresh connection
    • Add resetTransportConfiguration() utility function and expose it globally via window.resetTransportConfiguration
  • Issue 3: Fix TypeError in favicon onerror handler

    • Add null checks for parentElement in favicon image onerror handlers to prevent Cannot set properties of null error
  • Issue 4: Improve reliability of favicon and title loading

    • Increased retry limit from 2 to 4 retries for better reliability
    • Changed from fixed 500ms delay to exponential backoff (500ms, 1000ms, 2000ms, 4000ms)
    • Now retries when EITHER title OR favicon is missing (not just favicon)
    • Added MutationObserver for Scramjet frames to detect dynamic title/favicon changes in SPAs
    • Properly disconnect old MutationObservers to prevent memory leaks
    • Track observers per tab with cleanup on navigation
  • Issue 5: Fix libcurl random disconnection and reconnection issues

    • Added retry logic with exponential backoff (500ms, 1000ms, 2000ms) in ensureTransportConfigured() - up to 3 retries
    • Added transport staleness detection - connections older than 5 minutes are automatically refreshed
    • Added periodic health check every 2 minutes to refresh stale connections in the background
    • Added configureTransportWithRecovery() helper for robust retry with fresh reset on failure
    • Added lastTransportConfigTime tracking for staleness detection
    • Updated both Scramjet and Ultraviolet load functions to use the recovery helper
  • Run code review and security checks (no security issues found)

Original prompt

there are many bugs with this proxy. first, fix favicons not loading on the tabbar to to cors (example, instagram g initializing scramjet client
log.ts:47 g -> g Creating SingletonBox
print @ log.ts:47Understand this warning
client.js:637 Window.open interception set up via RawProxy for proxied frame
https%3A%2F%2Fwww.instagram.com%2Ffavicon.ico:1 Failed to load resource: the server responded with a status of 404 ()Understand this error
client.js:331 Favicon fetch returned status: 404
https%3A%2F%2Fwww.instagram.com%2Ffavicon.ico:1 Failed to load resource: the server responded with a status of 404 ()Understand this error
client.js:331 Favicon fetch returned status: 404
https%3A%2F%2Fwww.instagram.com%2Ffavicon.ico:1 Failed to load resource: the server responded with a status of 404 ()Understand this error
(index):1257 Uncaught TypeError: Cannot set properties of null (setting 'innerHTML')
at img.onerror ((index):1257:42)Understand this error
(add the same for uv) Seccond, fix libcurl not conecting correctley (libcurl works for the first search, but then fails of sj so epoxy defaults.


💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.

@codesandbox
Copy link

codesandbox bot commented Feb 1, 2026

Review or Edit in CodeSandbox

Open the branch in Web EditorVS CodeInsiders

Open Preview

Copilot AI and others added 2 commits February 1, 2026 13:23
…lity

Co-authored-by: sriail <225764385+sriail@users.noreply.github.com>
…nfiguration globally, use constants for proxy paths

Co-authored-by: sriail <225764385+sriail@users.noreply.github.com>
Copilot AI changed the title [WIP] Fix favicons not loading due to CORS Fix favicon CORS failures and libcurl transport connection issues Feb 1, 2026
Copilot AI requested a review from sriail February 1, 2026 13:28
@sriail
Copy link
Owner

sriail commented Feb 1, 2026

@copilot still fix the favicons not loading in the proxys tabs (index):1 Access to fetch at 'https://duckduckgo.com/favicon.ico' from origin 'https://vxv3wf-8080.csb.app' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.Understand this error
client.js:1422 GET https://duckduckgo.com/favicon.ico net::ERR_FAILED 200 (OK)
window.fetch @ client.js:1422
fetchFaviconAsDataUrl @ client.js:305
updatePageInfo @ client.js:515
(anonymous) @ client.js:550
setTimeout
(anonymous) @ client.js:549
g @ entry.ts:54
(anonymous) @ data:application/javascript;base64,CgkJc2VsZi5DT09LSUUgPSAie1wiLmdvb2dsZS5jb21AL0BBRUNcIjp7XCJkb21haW5cIjpcIi5nb29nbGUuY29tXCIsXCJzYW1lU2l0ZVwiOlwibGF4XCIsXCJuYW1lXCI6XCJBRUNcIixcInZhbHVlXCI6XCJBYUptYTV0LTBmaUlrN3EtQ1dRNk1YNmRFdzAzSzRzZ0JHZnFWcXJMN3RGamVLVVpYajROaGw5M3M1d1wiLFwiZXhwaXJlc1wiOlwiRnJpIEp1bCAzMSAyMDI2IDA5OjQ5OjI0IEdNVC0wNDAwIChFYXN0ZXJuIERheWxpZ2h0IFRpbWUpXCIsXCJwYXRoXCI6XCIvXCIsXCJzZWN1cmVcIjp0cnVlLFwiaHR0cE9ubHlcIjp0cnVlfSxcIi5nb29nbGUuY29tQC9ATklEXCI6e1wiZG9tYWluXCI6XCIuZ29vZ2xlLmNvbVwiLFwic2FtZVNpdGVcIjpcIm5vbmVcIixcIm5hbWVcIjpcIk5JRFwiLFwidmFsdWVcIjpcIjUyOD1XeE05bFFwT2xQRy1HcTJ1YW11cnAxdWdicy1KcHBwLW9MYTJ6bXB3OVdrWHRmNGtIVUdXemxCVUJlZThLeUIwN0VKOHowVV9ua3E3YjI3Y1F6MDlXVTlibmYtS1k3SzRNNDFkM1VGbUN5RzdrbEpveWhLOU1ZV1EyVDhETENpeTZUR04wWXR1RF9QOVowNjdNcXRPamZJYURDaWJjcnhzNWZPVTRBeW5zMmZ3UkN4bmVVMGdLR2dDVGRJcnY0Y0xCMFUzU09HU3FJejdhZkJXX3BNc195TDRvRGtnaEZIUDNQS1dLRUE5V3JaOVBSMUxqUHlBaG1aUm9zbjlvM2xCeFdMN2hhc2xTbnpuX1QxVENnXCIsXCJleHBpcmVzXCI6XCJNb24gQXVnIDAzIDIwMjYgMDk6NDk6MjQgR01ULTA0MDAgKEVhc3Rlcm4gRGF5bGlnaHQgVGltZSlcIixcInBhdGhcIjpcIi9cIixcInNlY3VyZVwiOnRydWUsXCJodHRwT25seVwiOnRydWV9LFwiLmdvb2dsZS5jb21AL0BfX1NlY3VyZS1CVUNLRVRcIjp7XCJkb21haW5cIjpcIi5nb29nbGUuY29tXCIsXCJzYW1lU2l0ZVwiOlwibGF4XCIsXCJuYW1lXCI6XCJfX1NlY3VyZS1CVUNLRVRcIixcInZhbHVlXCI6XCJDSllDXCIsXCJleHBpcmVzXCI6XCJGcmkgSnVsIDMxIDIwMjYgMDk6NDk6MjQgR01ULTA0MDAgKEVhc3Rlcm4gRGF5bGlnaHQgVGltZSlcIixcInBhdGhcIjpcIi9cIixcInNlY3VyZVwiOnRydWUsXCJodHRwT25seVwiOnRydWV9LFwiLmdvb2dsZS5jb21AL0BfX1NlY3VyZS1TVFJQXCI6e1wiZG9tYWluXCI6XCIuZ29vZ2xlLmNvbVwiLFwic2FtZVNpdGVcIjpcInN0cmljdFwiLFwibmFtZVwiOlwiX19TZWN1cmUtU1RSUFwiLFwidmFsdWVcIjpcIkFENkRvZ3ROMHU4VTVqQnhZMmNMYlJ3WmZPTFZEalREZmt2SWlKNEFxZ1VRRGFHN3UtbWp1d3JqZG5qVFhGR0lkNmc4bzc5ZzNLazhwVGdndnFlQ2NmRXNrSHRyTzVzU1J0M1BcIixcImV4cGlyZXNcIjpcIlN1biBGZWIgMDEgMjAyNiAwODo1NDozMSBHTVQtMDUwMCAoRWFzdGVybiBTdGFuZGFyZCBUaW1lKVwiLFwicGF0aFwiOlwiL1wiLFwic2VjdXJlXCI6dHJ1ZX0sXCIud3d3Lmdvb2dsZS5jb21AL0BEVlwiOntcImRvbWFpblwiOlwiLnd3dy5nb29nbGUuY29tXCIsXCJzYW1lU2l0ZVwiOlwibGF4XCIsXCJuYW1lXCI6XCJEVlwiLFwidmFsdWVcIjpcIjg5WGlRa0NyNGcwWHdQaEVYdnE0VkpHLTBYT1h3UmtcIixcImV4cGlyZXNcIjpcIlN1biBGZWIgMDEgMjAyNiAwODo1OTozMSBHTVQtMDUwMCAoRWFzdGVybiBTdGFuZGFyZCBUaW1lKVwiLFwicGF0aFwiOlwiL1wifSxcIi54LmNvbUAvQGd1ZXN0X2lkX21hcmtldGluZ1wiOntcImRvbWFpblwiOlwiLnguY29tXCIsXCJzYW1lU2l0ZVwiOlwiTm9uZVwiLFwibmFtZVwiOlwiZ3Vlc3RfaWRfbWFya2V0aW5nXCIsXCJ2YWx1ZVwiOlwidjE6MTc2OTk1Mzc3MzQxNjc0NTIxXCIsXCJtYXhBZ2VcIjo2MzA3MjAwMCxcImV4cGlyZXNcIjpcIlR1ZSBGZWIgMDEgMjAyOCAwODo0OTozMyBHTVQtMDUwMCAoRWFzdGVybiBTdGFuZGFyZCBUaW1lKVwiLFwicGF0aFwiOlwiL1wiLFwic2VjdXJlXCI6dHJ1ZX0sXCIueC5jb21AL0BndWVzdF9pZF9hZHNcIjp7XCJkb21haW5cIjpcIi54LmNvbVwiLFwic2FtZVNpdGVcIjpcIk5vbmVcIixcIm5hbWVcIjpcImd1ZXN0X2lkX2Fkc1wiLFwidmFsdWVcIjpcInYxOjE3Njk5NTM3NzM0MTY3NDUyMVwiLFwibWF4QWdlXCI6NjMwNzIwMDAsXCJleHBpcmVzXCI6XCJUdWUgRmViIDAxIDIwMjggMDg6NDk6MzMgR01ULTA1MDAgKEVhc3Rlcm4gU3RhbmRhcmQgVGltZSlcIixcInBhdGhcIjpcIi9cIixcInNlY3VyZVwiOnRydWV9LFwiLnguY29tQC9AcGVyc29uYWxpemF0aW9uX2lkXCI6e1wiZG9tYWluXCI6XCIueC5jb21cIixcInNhbWVTaXRlXCI6XCJOb25lXCIsXCJuYW1lXCI6XCJwZXJzb25hbGl6YXRpb25faWRcIixcInZhbHVlXCI6XCJcXFwidjFfaEEwMmQ4UERKRE5BZ3JFQXRwR1pJdz09XFxcIlwiLFwibWF4QWdlXCI6NjMwNzIwMDAsXCJleHBpcmVzXCI6XCJUdWUgRmViIDAxIDIwMjggMDg6NDk6MzMgR01ULTA1MDAgKEVhc3Rlcm4gU3RhbmRhcmQgVGltZSlcIixcInBhdGhcIjpcIi9cIixcInNlY3VyZVwiOnRydWV9LFwiLnguY29tQC9AZ3Vlc3RfaWRcIjp7XCJkb21haW5cIjpcIi54LmNvbVwiLFwic2FtZVNpdGVcIjpcIk5vbmVcIixcIm5hbWVcIjpcImd1ZXN0X2lkXCIsXCJ2YWx1ZVwiOlwidjE6MTc2OTk1Mzc3MzQxNjc0NTIxXCIsXCJtYXhBZ2VcIjo2MzA3MjAwMCxcImV4cGlyZXNcIjpcIlR1ZSBGZWIgMDEgMjAyOCAwODo0OTozMyBHTVQtMDUwMCAoRWFzdGVybiBTdGFuZGFyZCBUaW1lKVwiLFwicGF0aFwiOlwiL1wiLFwic2VjdXJlXCI6dHJ1ZX0sXCIueC5jb21AL0BndFwiOntcImRvbWFpblwiOlwiLnguY29tXCIsXCJzYW1lU2l0ZVwiOlwibGF4XCIsXCJuYW1lXCI6XCJndFwiLFwidmFsdWVcIjpcIjIwMTc5NTg1MDIyMDgwMzMxNjZcIixcIm1heEFnZVwiOjkwMDAsXCJwYXRoXCI6XCIvXCIsXCJzZWN1cmVcIjp0cnVlfSxcIi54LmNvbUAvQF9fY3VpZFwiOntcImRvbWFpblwiOlwiLnguY29tXCIsXCJzYW1lU2l0ZVwiOlwiTGF4XCIsXCJuYW1lXCI6XCJfX2N1aWRcIixcInZhbHVlXCI6XCIwZjNmNWNkYTFhMjU0ZTZkYmIyOThkNzY1MTQ4NDkyOVwiLFwicGF0aFwiOlwiL1wiLFwiZXhwaXJlc1wiOlwiTW9uIE1hciAwOCAyMDI3IDA4OjQ5OjM1IEdNVC0wNTAwIChFYXN0ZXJuIFN0YW5kYXJkIFRpbWUpXCJ9LFwiLnguY29tQC9AX19jZl9ibVwiOntcImRvbWFpblwiOlwiLnguY29tXCIsXCJzYW1lU2l0ZVwiOlwibGF4XCIsXCJuYW1lXCI6XCJfX2NmX2JtXCIsXCJ2YWx1ZVwiOlwiV1p4UVNpWUNtQW9Ud09McVJEVUVOWWFWbjZCcWlTZGlSY0tkVEpwa3Jlay0xNzY5OTUzNzk5LjA0NTExNjctMS4wLjEuMS1Hc1EzeUwudzIydDhQOFJfRHEzVWZEcERTYkFrczhUVXZFZS5lMmZjdncwSG1hX3Axc2xfdkFuTnV3MXI3eDR1NnZPSVZ4enZPc1NGd0xDVzMxN3NzQkNDN05qbHhWQWtkX2c3Sll6RjR1QVI3QjNfTGVqdlZTYUtROGk2Q24wOVwiLFwiaHR0cE9ubHlcIjp0cnVlLFwic2VjdXJlXCI6dHJ1ZSxcInBhdGhcIjpcIi9cIixcImV4cGlyZXNcIjpcIlN1biBGZWIgMDEgMjAyNiAwOToxOTo1OSBHTVQtMDUwMCAoRWFzdGVybiBTdGFuZGFyZCBUaW1lKVwifSxcIi54LmNvbUAvQGdfc3RhdGVcIjp7XCJkb21haW5cIjpcIi54LmNvbVwiLFwic2FtZVNpdGVcIjpcImxheFwiLFwibmFtZVwiOlwiZ19zdGF0ZVwiLFwidmFsdWVcIjpcIntcXFwiaV9sXFxcIjowLFxcXCJpX2xsXFxcIjoxNzY5OTUzNzc2MDIyLFxcXCJpX2JcXFwiOlxcXCJWdldNSWdXaW9YK28yWGZpam41UkJuY0xrNmdpR2M0OTZHemhWL0E3QWJBXFxcIixcXFwiaV9lXFxcIjp7XFxcImVuYWJsZV9pdHBfb3B0aW1pemF0aW9uXFxcIjowfX1cIixcInBhdGhcIjpcIi9cIixcImV4cGlyZXNcIjpcIkZyaSBKdWwgMzEgMjAyNiAwOTo0OTozNiBHTVQtMDQwMCAoRWFzdGVybiBEYXlsaWdodCBUaW1lKVwifX0iOwoJCSRzY3JhbWpldExvYWRDbGllbnQoKS5sb2FkQW5kSG9vayh7InByZWZpeCI6Ii9zY3JhbWpldC8iLCJnbG9iYWxzIjp7IndyYXBmbiI6IiRzY3JhbWpldCR3cmFwIiwid3JhcHByb3BlcnR5YmFzZSI6IiRzY3JhbWpldF9fIiwid3JhcHByb3BlcnR5Zm4iOiIkc2NyYW1qZXQkcHJvcCIsImNsZWFucmVzdGZuIjoiJHNjcmFtamV0JGNsZWFuIiwiaW1wb3J0Zm4iOiIkc2NyYW1qZXQkaW1wb3J0IiwicmV3cml0ZWZuIjoiJHNjcmFtamV0JHJld3JpdGUiLCJtZXRhZm4iOiIkc2NyYW1qZXQkbWV0YSIsInNldHJlYWxtZm4iOiIkc2NyYW1qZXQkc2V0cmVhbG0iLCJwdXNoc291cmNlbWFwZm4iOiIkc2NyYW1qZXQkcHVzaHNvdXJjZW1hcCIsInRyeXNldGZuIjoiJHNjcmFtamV0JHRyeXNldCIsInRlbXBsb2NpZCI6IiRzY3JhbWpldCR0ZW1wbG9jIiwidGVtcHVudXNlZGlkIjoiJHNjcmFtamV0JHRlbXB1bnVzZWQifSwiZmlsZXMiOnsid2FzbSI6Ii9zY3JhbS9zY3JhbWpldC53YXNtLndhc20iLCJhbGwiOiIvc2NyYW0vc2NyYW1qZXQuYWxsLmpzIiwic3luYyI6Ii9zY3JhbS9zY3JhbWpldC5zeW5jLmpzIn0sImZsYWdzIjp7InNlcnZpY2V3b3JrZXJzIjpmYWxzZSwic3luY3hociI6ZmFsc2UsInN0cmljdFJld3JpdGVzIjp0cnVlLCJyZXdyaXRlckxvZ3MiOmZhbHNlLCJjYXB0dXJlRXJyb3JzIjp0cnVlLCJjbGVhbkVycm9ycyI6ZmFsc2UsInNjcmFtaXRpemUiOmZhbHNlLCJzb3VyY2VtYXBzIjp0cnVlLCJkZXN0cnVjdHVyZVJld3JpdGVzIjpmYWxzZSwiaW50ZXJjZXB0RG93bmxvYWRzIjpmYWxzZSwiYWxsb3dJbnZhbGlkSnMiOnRydWUsImFsbG93RmFpbGVkSW50ZXJjZXB0cyI6dHJ1ZX0sInNpdGVGbGFncyI6e30sImNvZGVjIjp7ImVuY29kZSI6ImU9PmU/ZW5jb2RlVVJJQ29tcG9uZW50KGUpOmUiLCJkZWNvZGUiOiJlPT5lP2RlY29kZVVSSUNvbXBvbmVudChlKTplIn19KTsKCQlpZiAoImRvY3VtZW50IiBpbiBzZWxmICYmIGRvY3VtZW50Py5jdXJyZW50U2NyaXB0KSB7CgkJCWRvY3VtZW50LmN1cnJlbnRTY3JpcHQucmVtb3ZlKCk7CgkJfQoJ:3Understand this error
client.js:1422 GET https://duckduckgo.com/favicon.ico net::ERR_BLOCKED_BY_RESPONSE.NotSameOriginAfterDefaultedToSameOriginByCoep 200 (OK)
window.fetch @ client.js:1422
fetchFaviconAsDataUrl @ client.js:313
await in fetchFaviconAsDataUrl
updatePageInfo @ client.js:515
(anonymous) @ client.js:550
setTimeout
(anonymous) @ client.js:549
g @ entry.ts:54
(anonymous) @ data:application/javascript;base64,CgkJc2VsZi5DT09LSUUgPSAie1wiLmdvb2dsZS5jb21AL0BBRUNcIjp7XCJkb21haW5cIjpcIi5nb29nbGUuY29tXCIsXCJzYW1lU2l0ZVwiOlwibGF4XCIsXCJuYW1lXCI6XCJBRUNcIixcInZhbHVlXCI6XCJBYUptYTV0LTBmaUlrN3EtQ1dRNk1YNmRFdzAzSzRzZ0JHZnFWcXJMN3RGamVLVVpYajROaGw5M3M1d1wiLFwiZXhwaXJlc1wiOlwiRnJpIEp1bCAzMSAyMDI2IDA5OjQ5OjI0IEdNVC0wNDAwIChFYXN0ZXJuIERheWxpZ2h0IFRpbWUpXCIsXCJwYXRoXCI6XCIvXCIsXCJzZWN1cmVcIjp0cnVlLFwiaHR0cE9ubHlcIjp0cnVlfSxcIi5nb29nbGUuY29tQC9ATklEXCI6e1wiZG9tYWluXCI6XCIuZ29vZ2xlLmNvbVwiLFwic2FtZVNpdGVcIjpcIm5vbmVcIixcIm5hbWVcIjpcIk5JRFwiLFwidmFsdWVcIjpcIjUyOD1XeE05bFFwT2xQRy1HcTJ1YW11cnAxdWdicy1KcHBwLW9MYTJ6bXB3OVdrWHRmNGtIVUdXemxCVUJlZThLeUIwN0VKOHowVV9ua3E3YjI3Y1F6MDlXVTlibmYtS1k3SzRNNDFkM1VGbUN5RzdrbEpveWhLOU1ZV1EyVDhETENpeTZUR04wWXR1RF9QOVowNjdNcXRPamZJYURDaWJjcnhzNWZPVTRBeW5zMmZ3UkN4bmVVMGdLR2dDVGRJcnY0Y0xCMFUzU09HU3FJejdhZkJXX3BNc195TDRvRGtnaEZIUDNQS1dLRUE5V3JaOVBSMUxqUHlBaG1aUm9zbjlvM2xCeFdMN2hhc2xTbnpuX1QxVENnXCIsXCJleHBpcmVzXCI6XCJNb24gQXVnIDAzIDIwMjYgMDk6NDk6MjQgR01ULTA0MDAgKEVhc3Rlcm4gRGF5bGlnaHQgVGltZSlcIixcInBhdGhcIjpcIi9cIixcInNlY3VyZVwiOnRydWUsXCJodHRwT25seVwiOnRydWV9LFwiLmdvb2dsZS5jb21AL0BfX1NlY3VyZS1CVUNLRVRcIjp7XCJkb21haW5cIjpcIi5nb29nbGUuY29tXCIsXCJzYW1lU2l0ZVwiOlwibGF4XCIsXCJuYW1lXCI6XCJfX1NlY3VyZS1CVUNLRVRcIixcInZhbHVlXCI6XCJDSllDXCIsXCJleHBpcmVzXCI6XCJGcmkgSnVsIDMxIDIwMjYgMDk6NDk6MjQgR01ULTA0MDAgKEVhc3Rlcm4gRGF5bGlnaHQgVGltZSlcIixcInBhdGhcIjpcIi9cIixcInNlY3VyZVwiOnRydWUsXCJodHRwT25seVwiOnRydWV9LFwiLmdvb2dsZS5jb21AL0BfX1NlY3VyZS1TVFJQXCI6e1wiZG9tYWluXCI6XCIuZ29vZ2xlLmNvbVwiLFwic2FtZVNpdGVcIjpcInN0cmljdFwiLFwibmFtZVwiOlwiX19TZWN1cmUtU1RSUFwiLFwidmFsdWVcIjpcIkFENkRvZ3ROMHU4VTVqQnhZMmNMYlJ3WmZPTFZEalREZmt2SWlKNEFxZ1VRRGFHN3UtbWp1d3JqZG5qVFhGR0lkNmc4bzc5ZzNLazhwVGdndnFlQ2NmRXNrSHRyTzVzU1J0M1BcIixcImV4cGlyZXNcIjpcIlN1biBGZWIgMDEgMjAyNiAwODo1NDozMSBHTVQtMDUwMCAoRWFzdGVybiBTdGFuZGFyZCBUaW1lKVwiLFwicGF0aFwiOlwiL1wiLFwic2VjdXJlXCI6dHJ1ZX0sXCIud3d3Lmdvb2dsZS5jb21AL0BEVlwiOntcImRvbWFpblwiOlwiLnd3dy5nb29nbGUuY29tXCIsXCJzYW1lU2l0ZVwiOlwibGF4XCIsXCJuYW1lXCI6XCJEVlwiLFwidmFsdWVcIjpcIjg5WGlRa0NyNGcwWHdQaEVYdnE0VkpHLTBYT1h3UmtcIixcImV4cGlyZXNcIjpcIlN1biBGZWIgMDEgMjAyNiAwODo1OTozMSBHTVQtMDUwMCAoRWFzdGVybiBTdGFuZGFyZCBUaW1lKVwiLFwicGF0aFwiOlwiL1wifSxcIi54LmNvbUAvQGd1ZXN0X2lkX21hcmtldGluZ1wiOntcImRvbWFpblwiOlwiLnguY29tXCIsXCJzYW1lU2l0ZVwiOlwiTm9uZVwiLFwibmFtZVwiOlwiZ3Vlc3RfaWRfbWFya2V0aW5nXCIsXCJ2YWx1ZVwiOlwidjE6MTc2OTk1Mzc3MzQxNjc0NTIxXCIsXCJtYXhBZ2VcIjo2MzA3MjAwMCxcImV4cGlyZXNcIjpcIlR1ZSBGZWIgMDEgMjAyOCAwODo0OTozMyBHTVQtMDUwMCAoRWFzdGVybiBTdGFuZGFyZCBUaW1lKVwiLFwicGF0aFwiOlwiL1wiLFwic2VjdXJlXCI6dHJ1ZX0sXCIueC5jb21AL0BndWVzdF9pZF9hZHNcIjp7XCJkb21haW5cIjpcIi54LmNvbVwiLFwic2FtZVNpdGVcIjpcIk5vbmVcIixcIm5hbWVcIjpcImd1ZXN0X2lkX2Fkc1wiLFwidmFsdWVcIjpcInYxOjE3Njk5NTM3NzM0MTY3NDUyMVwiLFwibWF4QWdlXCI6NjMwNzIwMDAsXCJleHBpcmVzXCI6XCJUdWUgRmViIDAxIDIwMjggMDg6NDk6MzMgR01ULTA1MDAgKEVhc3Rlcm4gU3RhbmRhcmQgVGltZSlcIixcInBhdGhcIjpcIi9cIixcInNlY3VyZVwiOnRydWV9LFwiLnguY29tQC9AcGVyc29uYWxpemF0aW9uX2lkXCI6e1wiZG9tYWluXCI6XCIueC5jb21cIixcInNhbWVTaXRlXCI6XCJOb25lXCIsXCJuYW1lXCI6XCJwZXJzb25hbGl6YXRpb25faWRcIixcInZhbHVlXCI6XCJcXFwidjFfaEEwMmQ4UERKRE5BZ3JFQXRwR1pJdz09XFxcIlwiLFwibWF4QWdlXCI6NjMwNzIwMDAsXCJleHBpcmVzXCI6XCJUdWUgRmViIDAxIDIwMjggMDg6NDk6MzMgR01ULTA1MDAgKEVhc3Rlcm4gU3RhbmRhcmQgVGltZSlcIixcInBhdGhcIjpcIi9cIixcInNlY3VyZVwiOnRydWV9LFwiLnguY29tQC9AZ3Vlc3RfaWRcIjp7XCJkb21haW5cIjpcIi54LmNvbVwiLFwic2FtZVNpdGVcIjpcIk5vbmVcIixcIm5hbWVcIjpcImd1ZXN0X2lkXCIsXCJ2YWx1ZVwiOlwidjE6MTc2OTk1Mzc3MzQxNjc0NTIxXCIsXCJtYXhBZ2VcIjo2MzA3MjAwMCxcImV4cGlyZXNcIjpcIlR1ZSBGZWIgMDEgMjAyOCAwODo0OTozMyBHTVQtMDUwMCAoRWFzdGVybiBTdGFuZGFyZCBUaW1lKVwiLFwicGF0aFwiOlwiL1wiLFwic2VjdXJlXCI6dHJ1ZX0sXCIueC5jb21AL0BndFwiOntcImRvbWFpblwiOlwiLnguY29tXCIsXCJzYW1lU2l0ZVwiOlwibGF4XCIsXCJuYW1lXCI6XCJndFwiLFwidmFsdWVcIjpcIjIwMTc5NTg1MDIyMDgwMzMxNjZcIixcIm1heEFnZVwiOjkwMDAsXCJwYXRoXCI6XCIvXCIsXCJzZWN1cmVcIjp0cnVlfSxcIi54LmNvbUAvQF9fY3VpZFwiOntcImRvbWFpblwiOlwiLnguY29tXCIsXCJzYW1lU2l0ZVwiOlwiTGF4XCIsXCJuYW1lXCI6XCJfX2N1aWRcIixcInZhbHVlXCI6XCIwZjNmNWNkYTFhMjU0ZTZkYmIyOThkNzY1MTQ4NDkyOVwiLFwicGF0aFwiOlwiL1wiLFwiZXhwaXJlc1wiOlwiTW9uIE1hciAwOCAyMDI3IDA4OjQ5OjM1IEdNVC0wNTAwIChFYXN0ZXJuIFN0YW5kYXJkIFRpbWUpXCJ9LFwiLnguY29tQC9AX19jZl9ibVwiOntcImRvbWFpblwiOlwiLnguY29tXCIsXCJzYW1lU2l0ZVwiOlwibGF4XCIsXCJuYW1lXCI6XCJfX2NmX2JtXCIsXCJ2YWx1ZVwiOlwiV1p4UVNpWUNtQW9Ud09McVJEVUVOWWFWbjZCcWlTZGlSY0tkVEpwa3Jlay0xNzY5OTUzNzk5LjA0NTExNjctMS4wLjEuMS1Hc1EzeUwudzIydDhQOFJfRHEzVWZEcERTYkFrczhUVXZFZS5lMmZjdncwSG1hX3Axc2xfdkFuTnV3MXI3eDR1NnZPSVZ4enZPc1NGd0xDVzMxN3NzQkNDN05qbHhWQWtkX2c3Sll6RjR1QVI3QjNfTGVqdlZTYUtROGk2Q24wOVwiLFwiaHR0cE9ubHlcIjp0cnVlLFwic2VjdXJlXCI6dHJ1ZSxcInBhdGhcIjpcIi9cIixcImV4cGlyZXNcIjpcIlN1biBGZWIgMDEgMjAyNiAwOToxOTo1OSBHTVQtMDUwMCAoRWFzdGVybiBTdGFuZGFyZCBUaW1lKVwifSxcIi54LmNvbUAvQGdfc3RhdGVcIjp7XCJkb21haW5cIjpcIi54LmNvbVwiLFwic2FtZVNpdGVcIjpcImxheFwiLFwibmFtZVwiOlwiZ19zdGF0ZVwiLFwidmFsdWVcIjpcIntcXFwiaV9sXFxcIjowLFxcXCJpX2xsXFxcIjoxNzY5OTUzNzc2MDIyLFxcXCJpX2JcXFwiOlxcXCJWdldNSWdXaW9YK28yWGZpam41UkJuY0xrNmdpR2M0OTZHemhWL0E3QWJBXFxcIixcXFwiaV9lXFxcIjp7XFxcImVuYWJsZV9pdHBfb3B0aW1pemF0aW9uXFxcIjowfX1cIixcInBhdGhcIjpcIi9cIixcImV4cGlyZXNcIjpcIkZyaSBKdWwgMzEgMjAyNiAwOTo0OTozNiBHTVQtMDQwMCAoRWFzdGVybiBEYXlsaWdodCBUaW1lKVwifX0iOwoJCSRzY3JhbWpldExvYWRDbGllbnQoKS5sb2FkQW5kSG9vayh7InByZWZpeCI6Ii9zY3JhbWpldC8iLCJnbG9iYWxzIjp7IndyYXBmbiI6IiRzY3JhbWpldCR3cmFwIiwid3JhcHByb3BlcnR5YmFzZSI6IiRzY3JhbWpldF9fIiwid3JhcHByb3BlcnR5Zm4iOiIkc2NyYW1qZXQkcHJvcCIsImNsZWFucmVzdGZuIjoiJHNjcmFtamV0JGNsZWFuIiwiaW1wb3J0Zm4iOiIkc2NyYW1qZXQkaW1wb3J0IiwicmV3cml0ZWZuIjoiJHNjcmFtamV0JHJld3JpdGUiLCJtZXRhZm4iOiIkc2NyYW1qZXQkbWV0YSIsInNldHJlYWxtZm4iOiIkc2NyYW1qZXQkc2V0cmVhbG0iLCJwdXNoc291cmNlbWFwZm4iOiIkc2NyYW1qZXQkcHVzaHNvdXJjZW1hcCIsInRyeXNldGZuIjoiJHNjcmFtamV0JHRyeXNldCIsInRlbXBsb2NpZCI6IiRzY3JhbWpldCR0ZW1wbG9jIiwidGVtcHVudXNlZGlkIjoiJHNjcmFtamV0JHRlbXB1bnVzZWQifSwiZmlsZXMiOnsid2FzbSI6Ii9zY3JhbS9zY3JhbWpldC53YXNtLndhc20iLCJhbGwiOiIvc2NyYW0vc2NyYW1qZXQuYWxsLmpzIiwic3luYyI6Ii9zY3JhbS9zY3JhbWpldC5zeW5jLmpzIn0sImZsYWdzIjp7InNlcnZpY2V3b3JrZXJzIjpmYWxzZSwic3luY3hociI6ZmFsc2UsInN0cmljdFJld3JpdGVzIjp0cnVlLCJyZXdyaXRlckxvZ3MiOmZhbHNlLCJjYXB0dXJlRXJyb3JzIjp0cnVlLCJjbGVhbkVycm9ycyI6ZmFsc2UsInNjcmFtaXRpemUiOmZhbHNlLCJzb3VyY2VtYXBzIjp0cnVlLCJkZXN0cnVjdHVyZVJld3JpdGVzIjpmYWxzZSwiaW50ZXJjZXB0RG93bmxvYWRzIjpmYWxzZSwiYWxsb3dJbnZhbGlkSnMiOnRydWUsImFsbG93RmFpbGVkSW50ZXJjZXB0cyI6dHJ1ZX0sInNpdGVGbGFncyI6e30sImNvZGVjIjp7ImVuY29kZSI6ImU9PmU/ZW5jb2RlVVJJQ29tcG9uZW50KGUpOmUiLCJkZWNvZGUiOiJlPT5lP2RlY29kZVVSSUNvbXBvbmVudChlKTplIn19KTsKCQlpZiAoImRvY3VtZW50IiBpbiBzZWxmICYmIGRvY3VtZW50Py5jdXJyZW50U2NyaXB0KSB7CgkJCWRvY3VtZW50LmN1cnJlbnRTY3JpcHQucmVtb3ZlKCk7CgkJfQoJ:3Understand this error
client.js:319 Favicon fetch failed: Failed to fetch
log.ts:47 g initializing scramjet client
client.js:637 Window.open interception set up via RawProxy for proxied frame
duckduckgo.com/favicon.ico:1 GET https://duckduckgo.com/favicon.ico net::ERR_BLOCKED_BY_RESPONSE.NotSameOriginAfterDefaultedToSameOriginByCoep 200 (OK)Understand this error
(index):1 Access to fetch at 'https://duckduckgo.com/favicon.ico' from origin 'https://vxv3wf-8080.csb.app' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.Understand this error
client.js:1422 GET https://duckduckgo.com/favicon.ico net::ERR_FAILED 200 (OK)
window.fetch @ client.js:1422
fetchFaviconAsDataUrl @ client.js:305
updatePageInfo @ client.js:515
(anonymous) @ client.js:550
setTimeout
(anonymous) @ client.js:549
apply @ history.ts:22
RawProxy.r.apply.a.apply @ client.ts:547
_init @ https://duckduckgo.com/dist/g.662f3f77f5684f2790be.js:2
e.Models.VQD @ https://duckduckgo.com/dist/g.662f3f77f5684f2790be.js:2
(anonymous) @ https://duckduckgo.com/dist/g.662f3f77f5684f2790be.js:2
(anonymous) @ https://duckduckgo.com/dist/g.662f3f77f5684f2790be.js:2Understand this error
(index):1 Access to fetch at 'https://duckduckgo.com/favicon.ico' from origin 'https://vxv3wf-8080.csb.app' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.Understand this error
client.js:1422 GET https://duckduckgo.com/favicon.ico net::ERR_FAILED 200 (OK)
window.fetch @ client.js:1422
fetchFaviconAsDataUrl @ client.js:305
updatePageInfo @ client.js:515
(anonymous) @ client.js:550
setTimeout
(anonymous) @ client.js:549
apply @ history.ts:22
RawProxy.r.apply.a.apply @ client.ts:547
h @ https%3A%2F%2Fduckduckgo.com%2Fdist%2Fwpm.main.415d1357a99036b03317.js?type=module:2
69700 @ https%3A%2F%2Fduckduckgo.com%2Fdist%2Fwpm.main.415d1357a99036b03317.js?type=module:2
s @ https%3A%2F%2Fduckduckgo.com%2Fdist%2Fwpm.main.415d1357a99036b03317.js?type=module:2
93519 @ https%3A%2F%2Fduckduckgo.com%2Fdist%2Fwpm.main.415d1357a99036b03317.js?type=module:2
s @ https%3A%2F%2Fduckduckgo.com%2Fdist%2Fwpm.main.415d1357a99036b03317.js?type=module:2
35239 @ https%3A%2F%2Fduckduckgo.com%2Fdist%2Fwpm.main.415d1357a99036b03317.js?type=module:2
s @ https%3A%2F%2Fduckduckgo.com%2Fdist%2Fwpm.main.415d1357a99036b03317.js?type=module:2
77181 @ https%3A%2F%2Fduckduckgo.com%2Fdist%2Fwpm.main.415d1357a99036b03317.js?type=module:2
s @ https%3A%2F%2Fduckduckgo.com%2Fdist%2Fwpm.main.415d1357a99036b03317.js?type=module:2
42614 @ https%3A%2F%2Fduckduckgo.com%2Fdist%2Fwpm.main.415d1357a99036b03317.js?type=module:2
s @ https%3A%2F%2Fduckduckgo.com%2Fdist%2Fwpm.main.415d1357a99036b03317.js?type=module:2
(anonymous) @ https%3A%2F%2Fduckduckgo.com%2Fdist%2Fwpm.main.415d1357a99036b03317.js?type=module:2
s.O @ https%3A%2F%2Fduckduckgo.com%2Fdist%2Fwpm.main.415d1357a99036b03317.js?type=module:2
(anonymous) @ https%3A%2F%2Fduckduckgo.com%2Fdist%2Fwpm.main.415d1357a99036b03317.js?type=module:2
(anonymous) @ https%3A%2F%2Fduckduckgo.com%2Fdist%2Fwpm.main.415d1357a99036b03317.js?type=module:2Understand this error
(index):1 Access to fetch at 'https://duckduckgo.com/favicon.ico' from origin 'https://vxv3wf-8080.csb.app' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.Understand this error
client.js:1422 GET https://duckduckgo.com/favicon.ico net::ERR_FAILED 200 (OK)
window.fetch @ client.js:1422
fetchFaviconAsDataUrl @ client.js:305
updatePageInfo @ client.js:515
(anonymous) @ client.js:550
setTimeout
(anonymous) @ client.js:549
apply @ history.ts:22
RawProxy.r.apply.a.apply @ client.ts:547
c @ https%3A%2F%2Fduckduckgo.com%2Fdist%2Fwpmv.2d81bfe92dfdf93a243e.js?type=module:3
69700 @ https%3A%2F%2Fduckduckgo.com%2Fdist%2Fwpm.main.415d1357a99036b03317.js?type=module:2
s @ https%3A%2F%2Fduckduckgo.com%2Fdist%2Fwpm.main.415d1357a99036b03317.js?type=module:2
93519 @ https%3A%2F%2Fduckduckgo.com%2Fdist%2Fwpm.main.415d1357a99036b03317.js?type=module:2
s @ https%3A%2F%2Fduckduckgo.com%2Fdist%2Fwpm.main.415d1357a99036b03317.js?type=module:2
35239 @ https%3A%2F%2Fduckduckgo.com%2Fdist%2Fwpm.main.415d1357a99036b03317.js?type=module:2
s @ https%3A%2F%2Fduckduckgo.com%2Fdist%2Fwpm.main.415d1357a99036b03317.js?type=module:2
77181 @ https%3A%2F%2Fduckduckgo.com%2Fdist%2Fwpm.main.415d1357a99036b03317.js?type=module:2
s @ https%3A%2F%2Fduckduckgo.com%2Fdist%2Fwpm.main.415d1357a99036b03317.js?type=module:2
42614 @ https%3A%2F%2Fduckduckgo.com%2Fdist%2Fwpm.main.415d1357a99036b03317.js?type=module:2
s @ https%3A%2F%2Fduckduckgo.com%2Fdist%2Fwpm.main.415d1357a99036b03317.js?type=module:2
(anonymous) @ https%3A%2F%2Fduckduckgo.com%2Fdist%2Fwpm.main.415d1357a99036b03317.js?type=module:2
s.O @ https%3A%2F%2Fduckduckgo.com%2Fdist%2Fwpm.main.415d1357a99036b03317.js?type=module:2
(anonymous) @ https%3A%2F%2Fduckduckgo.com%2Fdist%2Fwpm.main.415d1357a99036b03317.js?type=module:2
(anonymous) @ https%3A%2F%2Fduckduckgo.com%2Fdist%2Fwpm.main.415d1357a99036b03317.js?type=module:2Understand this error
client.js:1422 GET https://duckduckgo.com/favicon.ico net::ERR_BLOCKED_BY_RESPONSE.NotSameOriginAfterDefaultedToSameOriginByCoep 200 (OK)
window.fetch @ client.js:1422
fetchFaviconAsDataUrl @ client.js:313
await in fetchFaviconAsDataUrl
updatePageInfo @ client.js:515
(anonymous) @ client.js:550
setTimeout
(anonymous) @ client.js:549
apply @ history.ts:22
RawProxy.r.apply.a.apply @ client.ts:547
_init @ https://duckduckgo.com/dist/g.662f3f77f5684f2790be.js:2
e.Models.VQD @ https://duckduckgo.com/dist/g.662f3f77f5684f2790be.js:2
(anonymous) @ https://duckduckgo.com/dist/g.662f3f77f5684f2790be.js:2
(anonymous) @ https://duckduckgo.com/dist/g.662f3f77f5684f2790be.js:2Understand this error
client.js:319 Favicon fetch failed: Failed to fetch
client.js:1422 GET https://duckduckgo.com/favicon.ico net::ERR_BLOCKED_BY_RESPONSE.NotSameOriginAfterDefaultedToSameOriginByCoep 200 (OK)
window.fetch @ client.js:1422
fetchFaviconAsDataUrl @ client.js:313
await in fetchFaviconAsDataUrl
updatePageInfo @ client.js:515
(anonymous) @ client.js:550
setTimeout
(anonymous) @ client.js:549
apply @ history.ts:22
RawProxy.r.apply.a.apply @ client.ts:547
h @ https%3A%2F%2Fduckduckgo.com%2Fdist%2Fwpm.main.415d1357a99036b03317.js?type=module:2
69700 @ https%3A%2F%2Fduckduckgo.com%2Fdist%2Fwpm.main.415d1357a99036b03317.js?type=module:2
s @ https%3A%2F%2Fduckduckgo.com%2Fdist%2Fwpm.main.415d1357a99036b03317.js?type=module:2
93519 @ https%3A%2F%2Fduckduckgo.com%2Fdist%2Fwpm.main.415d1357a99036b03317.js?type=module:2
s @ https%3A%2F%2Fduckduckgo.com%2Fdist%2Fwpm.main.415d1357a99036b03317.js?type=module:2
35239 @ https%3A%2F%2Fduckduckgo.com%2Fdist%2Fwpm.main.415d1357a99036b03317.js?type=module:2
s @ https%3A%2F%2Fduckduckgo.com%2Fdist%2Fwpm.main.415d1357a99036b03317.js?type=module:2
77181 @ https%3A%2F%2Fduckduckgo.com%2Fdist%2Fwpm.main.415d1357a99036b03317.js?type=module:2
s @ https%3A%2F%2Fduckduckgo.com%2Fdist%2Fwpm.main.415d1357a99036b03317.js?type=module:2
42614 @ https%3A%2F%2Fduckduckgo.com%2Fdist%2Fwpm.main.415d1357a99036b03317.js?type=module:2
s @ https%3A%2F%2Fduckduckgo.com%2Fdist%2Fwpm.main.415d1357a99036b03317.js?type=module:2
(anonymous) @ https%3A%2F%2Fduckduckgo.com%2Fdist%2Fwpm.main.415d1357a99036b03317.js?type=module:2
s.O @ https%3A%2F%2Fduckduckgo.com%2Fdist%2Fwpm.main.415d1357a99036b03317.js?type=module:2
(anonymous) @ https%3A%2F%2Fduckduckgo.com%2Fdist%2Fwpm.main.415d1357a99036b03317.js?type=module:2
(anonymous) @ https%3A%2F%2Fduckduckgo.com%2Fdist%2Fwpm.main.415d1357a99036b03317.js?type=module:2Understand this error
client.js:319 Favicon fetch failed: Failed to fetch
client.js:1422 GET https://duckduckgo.com/favicon.ico net::ERR_BLOCKED_BY_RESPONSE.NotSameOriginAfterDefaultedToSameOriginByCoep 200 (OK)
window.fetch @ client.js:1422
fetchFaviconAsDataUrl @ client.js:313
await in fetchFaviconAsDataUrl
updatePageInfo @ client.js:515
(anonymous) @ client.js:550
setTimeout
(anonymous) @ client.js:549
apply @ history.ts:22
RawProxy.r.apply.a.apply @ client.ts:547
c @ https%3A%2F%2Fduckduckgo.com%2Fdist%2Fwpmv.2d81bfe92dfdf93a243e.js?type=module:3
69700 @ https%3A%2F%2Fduckduckgo.com%2Fdist%2Fwpm.main.415d1357a99036b03317.js?type=module:2
s @ https%3A%2F%2Fduckduckgo.com%2Fdist%2Fwpm.main.415d1357a99036b03317.js?type=module:2
93519 @ https%3A%2F%2Fduckduckgo.com%2Fdist%2Fwpm.main.415d1357a99036b03317.js?type=module:2
s @ https%3A%2F%2Fduckduckgo.com%2Fdist%2Fwpm.main.415d1357a99036b03317.js?type=module:2
35239 @ https%3A%2F%2Fduckduckgo.com%2Fdist%2Fwpm.main.415d1357a99036b03317.js?type=module:2
s @ https%3A%2F%2Fduckduckgo.com%2Fdist%2Fwpm.main.415d1357a99036b03317.js?type=module:2
77181 @ https%3A%2F%2Fduckduckgo.com%2Fdist%2Fwpm.main.415d1357a99036b03317.js?type=module:2
s @ https%3A%2F%2Fduckduckgo.com%2Fdist%2Fwpm.main.415d1357a99036b03317.js?type=module:2
42614 @ https%3A%2F%2Fduckduckgo.com%2Fdist%2Fwpm.main.415d1357a99036b03317.js?type=module:2
s @ https%3A%2F%2Fduckduckgo.com%2Fdist%2Fwpm.main.415d1357a99036b03317.js?type=module:2
(anonymous) @ https%3A%2F%2Fduckduckgo.com%2Fdist%2Fwpm.main.415d1357a99036b03317.js?type=module:2
s.O @ https%3A%2F%2Fduckduckgo.com%2Fdist%2Fwpm.main.415d1357a99036b03317.js?type=module:2
(anonymous) @ https%3A%2F%2Fduckduckgo.com%2Fdist%2Fwpm.main.415d1357a99036b03317.js?type=module:2
(anonymous) @ https%3A%2F%2Fduckduckgo.com%2Fdist%2Fwpm.main.415d1357a99036b03317.js?type=module:2Understand this error
client.js:319 Favicon fetch failed: Failed to fetch
duckduckgo.com/favicon.ico:1 GET https://duckduckgo.com/favicon.ico net::ERR_BLOCKED_BY_RESPONSE.NotSameOriginAfterDefaultedToSameOriginByCoep 200 (OK)Understand this error
2(index):1257 Uncaught TypeError: Cannot set properties of null (setting 'innerHTML')
at img.onerror ((index):1257:42)
img.onerror @ (index):1257Understand this error
(index):1 Access to fetch at 'https://duckduckgo.com/favicon.ico' from origin 'https://vxv3wf-8080.csb.app' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.Understand this error
client.js:1422 GET https://duckduckgo.com/favicon.ico net::ERR_FAILED 200 (OK)
window.fetch @ client.js:1422
fetchFaviconAsDataUrl @ client.js:305
updatePageInfo @ client.js:515
(anonymous) @ client.js:550
setTimeout
(anonymous) @ client.js:549
apply @ history.ts:22
RawProxy.r.apply.a.apply @ client.ts:547
(anonymous) @ https://duckduckgo.com/dist/util/u.52f0796693655fe925b2.js:2
setTimeout
RawProxy.r.apply.a.apply @ client.ts:571
_updatePath @ https://duckduckgo.com/dist/util/u.52f0796693655fe925b2.js:2
set @ https://duckduckgo.com/dist/util/u.52f0796693655fe925b2.js:2
set @ https://duckduckgo.com/dist/util/u.52f0796693655fe925b2.js:2
show @ https://duckduckgo.com/dist/g.662f3f77f5684f2790be.js:2
open @ https://duckduckgo.com/dist/g.662f3f77f5684f2790be.js:2
reactOpen @ https://duckduckgo.com/dist/g.662f3f77f5684f2790be.js:2
(anonymous) @ https%3A%2F%2Fduckduckgo.com%2Fdist%2Fwpm.main.415d1357a99036b03317.js?type=module:2
(anonymous) @ https%3A%2F%2Fduckduckgo.com%2Fdist%2Fwpm.main.415d1357a99036b03317.js?type=module:2
nc @ https%3A%2F%2Fduckduckgo.com%2Fdist%2Fwpmv.2d81bfe92dfdf93a243e.js?type=module:3
Cs @ https%3A%2F%2Fduckduckgo.com%2Fdist%2Fwpmv.2d81bfe92dfdf93a243e.js?type=module:3
(anonymous) @ https%3A%2F%2Fduckduckgo.com%2Fdist%2Fwpmv.2d81bfe92dfdf93a243e.js?type=module:3
Es @ https%3A%2F%2Fduckduckgo.com%2Fdist%2Fwpmv.2d81bfe92dfdf93a243e.js?type=module:3
cs @ https%3A%2F%2Fduckduckgo.com%2Fdist%2Fwpmv.2d81bfe92dfdf93a243e.js?type=module:3
Ko @ https%3A%2F%2Fduckduckgo.com%2Fdist%2Fwpmv.2d81bfe92dfdf93a243e.js?type=module:3
(anonymous) @ https%3A%2F%2Fduckduckgo.com%2Fdist%2Fwpmv.2d81bfe92dfdf93a243e.js?type=module:3Understand this error
client.js:1422 GET https://duckduckgo.com/favicon.ico net::ERR_BLOCKED_BY_RESPONSE.NotSameOriginAfterDefaultedToSameOriginByCoep 200 (OK)
window.fetch @ client.js:1422
fetchFaviconAsDataUrl @ client.js:313
await in fetchFaviconAsDataUrl
updatePageInfo @ client.js:515
(anonymous) @ client.js:550
setTimeout
(anonymous) @ client.js:549
apply @ history.ts:22
RawProxy.r.apply.a.apply @ client.ts:547
(anonymous) @ https://duckduckgo.com/dist/util/u.52f0796693655fe925b2.js:2
setTimeout
RawProxy.r.apply.a.apply @ client.ts:571
_updatePath @ https://duckduckgo.com/dist/util/u.52f0796693655fe925b2.js:2
set @ https://duckduckgo.com/dist/util/u.52f0796693655fe925b2.js:2
set @ https://duckduckgo.com/dist/util/u.52f0796693655fe925b2.js:2
show @ https://duckduckgo.com/dist/g.662f3f77f5684f2790be.js:2
open @ https://duckduckgo.com/dist/g.662f3f77f5684f2790be.js:2
reactOpen @ https://duckduckgo.com/dist/g.662f3f77f5684f2790be.js:2
(anonymous) @ https%3A%2F%2Fduckduckgo.com%2Fdist%2Fwpm.main.415d1357a99036b03317.js?type=module:2
(anonymous) @ https%3A%2F%2Fduckduckgo.com%2Fdist%2Fwpm.main.415d1357a99036b03317.js?type=module:2
nc @ https%3A%2F%2Fduckduckgo.com%2Fdist%2Fwpmv.2d81bfe92dfdf93a243e.js?type=module:3
Cs @ https%3A%2F%2Fduckduckgo.com%2Fdist%2Fwpmv.2d81bfe92dfdf93a243e.js?type=module:3
(anonymous) @ https%3A%2F%2Fduckduckgo.com%2Fdist%2Fwpmv.2d81bfe92dfdf93a243e.js?type=module:3
Es @ https%3A%2F%2Fduckduckgo.com%2Fdist%2Fwpmv.2d81bfe92dfdf93a243e.js?type=module:3
cs @ https%3A%2F%2Fduckduckgo.com%2Fdist%2Fwpmv.2d81bfe92dfdf93a243e.js?type=module:3
Ko @ https%3A%2F%2Fduckduckgo.com%2Fdist%2Fwpmv.2d81bfe92dfdf93a243e.js?type=module:3
(anonymous) @ https%3A%2F%2Fduckduckgo.com%2Fdist%2Fwpmv.2d81bfe92dfdf93a243e.js?type=module:3Understand this error
client.js:319 Favicon fetch failed: Failed to fetch
duckduckgo.com/favicon.ico:1 GET https://duckduckgo.com/favicon.ico net::ERR_BLOCKED_BY_RESPONSE.NotSameOriginAfterDefaultedToSameOriginByCoep 200 (OK)Understand this error
(index):1 Access to fetch at 'https://duckduckgo.com/favicon.ico' from origin 'https://vxv3wf-8080.csb.app' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.Understand this error
client.js:1422 GET https://duckduckgo.com/favicon.ico net::ERR_FAILED 200 (OK)
window.fetch @ client.js:1422
fetchFaviconAsDataUrl @ client.js:305
updatePageInfo @ client.js:515
(anonymous) @ client.js:756
setTimeout
(anonymous) @ client.js:755Understand this error
(index):1 Access to fetch at 'https://duckduckgo.com/favicon.ico' from origin 'https://vxv3wf-8080.csb.app' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.Understand this error
client.js:1422 GET https://duckduckgo.com/favicon.ico net::ERR_FAILED 200 (OK)
window.fetch @ client.js:1422
fetchFaviconAsDataUrl @ client.js:305
updatePageInfo @ client.js:515
(anonymous) @ client.js:550
setTimeout
(anonymous) @ client.js:549
apply @ history.ts:22
RawProxy.r.apply.a.apply @ client.ts:547
_handlePageShow @ https://duckduckgo.com/dist/b.318429fa46ad34868e38.js:20
apply @ event.ts:118Understand this error
client.js:1422 GET https://duckduckgo.com/favicon.ico net::ERR_BLOCKED_BY_RESPONSE.NotSameOriginAfterDefaultedToSameOriginByCoep 200 (OK)
window.fetch @ client.js:1422
fetchFaviconAsDataUrl @ client.js:313
await in fetchFaviconAsDataUrl
updatePageInfo @ client.js:515
(anonymous) @ client.js:756
setTimeout
(anonymous) @ client.js:755Understand this error
client.js:319 Favicon fetch failed: Failed to fetch
client.js:1422 GET https://duckduckgo.com/favicon.ico net::ERR_BLOCKED_BY_RESPONSE.NotSameOriginAfterDefaultedToSameOriginByCoep 200 (OK)
window.fetch @ client.js:1422
fetchFaviconAsDataUrl @ client.js:313
await in fetchFaviconAsDataUrl
updatePageInfo @ client.js:515
(anonymous) @ client.js:550
setTimeout
(anonymous) @ client.js:549
apply @ history.ts:22
RawProxy.r.apply.a.apply @ client.ts:547
_handlePageShow @ https://duckduckgo.com/dist/b.318429fa46ad34868e38.js:20
apply @ event.ts:118Understand this error
client.js:319 Favicon fetch failed: Failed to fetch
duckduckgo.com/favicon.ico:1 GET https://duckduckgo.com/favicon.ico net::ERR_BLOCKED_BY_RESPONSE.NotSameOriginAfterDefaultedToSameOriginByCoep 200 (OK)Understand this error
(index):1257 Uncaught TypeError: Cannot set properties of null (setting 'innerHTML')
at img.onerror ((index):1257:42)
img.onerror @ (index):1257Understand this error
vxv3wf-8080.csb.app/scramjet/https%3A%2F%2Fduckduckgo.com%2F%3Fq%3Dg%26ia%3Dweb:1 The resource https://vxv3wf-8080.csb.app/scramjet/https%3A%2F%2Fduckduckgo.com%2Fdist%2Fwpm.duckassist-ia.6e30502987ec223ba8ea.css was preloaded using link preload but not used within a few seconds from the window's load event. Please make sure it has an appropriate as value and it is preloaded intentionally.Understand this warning
vxv3wf-8080.csb.app/scramjet/https%3A%2F%2Fduckduckgo.com%2F%3Fq%3Dg%26ia%3Dweb:1 The resource https://vxv3wf-8080.csb.app/scramjet/https%3A%2F%2Fduckduckgo.com%2Fdist%2Fwpm.duckassist-ia.2a5fcfde937500e21ef4.js was preloaded using link preload but not used within a few seconds from the window's load event. Please make sure it has an appropriate as value and it is preloaded intentionally.

…on URLs

Co-authored-by: sriail <225764385+sriail@users.noreply.github.com>
Copy link
Contributor Author

Copilot AI commented Feb 1, 2026

@copilot still fix the favicons not loading in the proxys tabs (index):1 Access to fetch at 'https://duckduckgo.com/favicon.ico' from origin 'https://vxv3wf-8080.csb.app' has been blocked by CORS poli...

Fixed in c4015e6. Added safety checks to prevent CORS errors:

  1. New isSafeFaviconUrl() helper validates URLs before any fetch attempt
  2. fetchFaviconAsDataUrl() now rejects external URLs (different origin) early
  3. updatePageInfo() only uses favicon URLs as fallback if they pass safety validation

External favicon URLs that can't be proxied are now silently skipped instead of causing CORS errors.

@sriail
Copy link
Owner

sriail commented Feb 2, 2026

@copilot somtimes the favicons wont load, it sometimes works and somtimes dose not, and somtimes the favicons and page titles do not update. fix this

… and MutationObservers

Co-authored-by: sriail <225764385+sriail@users.noreply.github.com>
Copy link
Contributor Author

Copilot AI commented Feb 2, 2026

@copilot somtimes the favicons wont load, it sometimes works and somtimes dose not, and somtimes the favicons and page titles do not update. fix this

Fixed in cd036d8. Improved favicon and title loading reliability:

  1. Increased retries: 2 → 4 retries with exponential backoff (500ms, 1000ms, 2000ms, 4000ms)
  2. Retry for both: Now retries when either title OR favicon is missing (previously only favicon)
  3. MutationObservers: Added observers to detect dynamic title/favicon changes in SPAs
  4. Memory leak fix: Properly disconnect old observers on navigation

These changes should make favicon and title updates much more consistent.

@sriail
Copy link
Owner

sriail commented Feb 8, 2026

libcurl still disconnects from scramjet @copilot rendomley and can not reconect, causing epoxy to default, leading to wss issues when site call on it. fix this

…ring, and recovery

Co-authored-by: sriail <225764385+sriail@users.noreply.github.com>
Copy link
Contributor Author

Copilot AI commented Feb 8, 2026

libcurl still disconnects from scramjet @copilot rendomley and can not reconect, causing epoxy to default, leading to wss issues when site call on it. fix this

Fixed in e0da2f4. Improved libcurl transport reliability:

  1. Retry logic: ensureTransportConfigured() now retries up to 3 times with exponential backoff (500ms, 1000ms, 2000ms)
  2. Recovery helper: New configureTransportWithRecovery() performs fresh reset and additional retries if initial attempts fail
  3. Staleness detection: Connections older than 5 minutes are considered stale and refreshed
  4. Background health check: Every 2 minutes, stale connections are automatically refreshed to prevent disconnects

This should prevent libcurl from randomly disconnecting and defaulting to epoxy.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants