IllegalWebDriverStateException: Unknown chrome IO error | Browser unavailable: enableAPIAgents (3/5) | Failed to enable CDT agents
2025-06-24 22:32:24.530 INFO [main] a.p.p.q.c.AbstractSQLContext - SQLContext is created | 1/0 | H2SQLContext 2025-06-24 22:32:24.611 INFO [main] a.p.p.s.c.PulsarContexts - Total 1 active contexts: ai.platon.pulsar.ql.context.H2SQLContext #1 2025-06-24 22:32:24.616 INFO [main] a.p.p.a.PulsarApplicationKt - Starting PulsarApplicationKt v3.0.10-SNAPSHOT using Java 21.0.6 with PID 1 (/app/app.jar started by appuser in /app) 2025-06-24 22:32:24.617 INFO [main] a.p.p.a.PulsarApplicationKt - The following 2 profiles are active: "master", "private" 2025-06-24 22:32:28.204 INFO [main] o.a.c.h.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8182"] 2025-06-24 22:32:28.206 INFO [main] o.a.c.c.StandardService - Starting service [Tomcat] 2025-06-24 22:32:28.206 INFO [main] o.a.c.c.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.34] 2025-06-24 22:32:28.249 INFO [main] o.a.c.c.C.[.[.[/] - Initializing Spring embedded WebApplicationContext 2025-06-24 22:32:28.810 INFO [main] a.p.p.s.c.i.StreamingCrawlLoop - Crawl loop is started with 15 link collectors | #1 | ai.platon.pulsar.skeleton.crawl.impl.StreamingCrawlLoop@7b29cdea 2025-06-24 22:32:28.814 INFO [r-worker-1] a.p.p.s.c.i.StreamingCrawler - Starting crawler | StreamingCrawler | #1 | class ai.platon.pulsar.skeleton.session.BasicPulsarSession ... 2025-06-24 22:32:28.847 INFO [main] a.p.p.a.PulsarApplication - Welcome to PulsarRPA!
LLM is configured, you can use LLM commands.
Example 1: Using the WebUI to run a command: http://localhost:8182/command.html
Example 2: For Beginners – Just Text, No Code:
curl -X POST "http://localhost:8182/api/commands/plain" -H "Content-Type: text/plain" -d "
Go to https://www.amazon.com/dp/B0C1H26C46
After browser launch: clear browser cookies.
After page load: scroll to the middle.
Summarize the product.
Extract: product name, price, ratings.
Find all links containing /dp/.
"
Example 3: For Advanced Users — LLM + X-SQL: Precise, Flexible, Powerful:
curl -X POST "http://localhost:8182/api/x/e" -H "Content-Type: text/plain" -d "
select
llm_extract(dom, 'product name, price, ratings') as llm_extracted_data,
dom_base_uri(dom) as url,
dom_first_text(dom, '#productTitle') as title,
dom_first_slim_html(dom, 'img:expr(width > 400)') as img
from load_and_select('https://www.amazon.com/dp/B0C1H26C46', 'body');
"
2025-06-24 22:32:30.135 INFO [main] o.a.c.h.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8182"]
2025-06-24 22:32:30.194 INFO [main] a.p.p.a.PulsarApplicationKt - Started PulsarApplicationKt in 6.431 seconds (process running for 8.154)
2025-06-24 22:32:48.862 INFO [182-exec-1] o.a.c.c.C.[.[.[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
2025-06-24 22:32:54.505 INFO [182-exec-3] a.p.p.e.ChatModelFactory - Creating LLM with provider and model name | deepseek deepseek-chat *******************************7e3b
2025-06-24 22:32:55.136 INFO [182-exec-3] o.e.c.EhcacheManager - Cache 'modelResponses' created in EhcacheManager.
2025-06-24 22:32:55.165 INFO [182-exec-3] a.p.p.e.i.ChatModelImpl - ▶ Chat - [len: 1837] You're given a user request that describes how to interact with and extract information from a we...
2025-06-24 22:33:06.827 INFO [182-exec-3] a.p.p.e.i.ChatModelImpl - ◀ Chat - token: 532 | [len: 419] ```json { "url": "{PLACEHOLDER_URL}", "pageSummaryPrompt": "Summarize the product description...
2025-06-24 22:33:07.377 INFO [r-worker-1] a.p.p.s.c.p.ProtocolFactory - Supported protocols: browser
2025-06-24 22:33:07.447 INFO [r-worker-1] a.p.p.s.c.p.h.PrimerHtmlParser - className: PrimerHtmlParser defaultCharEncoding: utf-8 parseFilters: ParseFilters
2025-06-24 22:33:07.492 INFO [r-worker-1] a.p.p.s.c.p.h.PrimerHtmlParser - className: PrimerHtmlParser defaultCharEncoding: utf-8 parseFilters: null
2025-06-24 22:33:07.494 INFO [r-worker-1] a.p.p.s.c.p.ParserFactory - Active parsers:
----------Params Table----------
Name Value
text/html: ai.platon.pulsar.skeleton.crawl.parse.html.PrimerHtmlParser
text/xml: ai.platon.pulsar.parse.tika.TikaParser
text/aspdotnet: ai.platon.pulsar.skeleton.crawl.parse.html.PrimerHtmlParser
application/rss+xml: ai.platon.pulsar.parse.tika.TikaParser
*: ai.platon.pulsar.parse.tika.TikaParser
application/xhtml+xml: ai.platon.pulsar.skeleton.crawl.parse.html.PrimerHtmlParser
2025-06-24 22:33:12.136 INFO [r-worker-1] a.p.p.p.g.GoraStorage - Using MongoDB servers: 127.0.0.1:27017
2025-06-24 22:33:12.137 INFO [r-worker-1] a.p.p.p.g.GoraStorage - Backend data store: ai.platon.pulsar.persist.gora.FileBackendPageStore, real schema: FileBackendPageStore
2025-06-24 22:33:12.137 INFO [r-worker-1] a.p.p.p.g.GoraStorage - FileBackendPageStore is only for development and testing, it is not suitable for production environment
2025-06-24 22:33:12.141 INFO [r-worker-1] a.p.p.p.DataStorageFactory - Backend data store is created: org.apache.gora.mongodb.store.MongoStore, realSchema: FileBackendPageStore
2025-06-24 22:33:12.368 INFO [r-worker-1] a.p.p.p.b.e.c.MultiPrivacyContextManager - Maintaining service is started, minimal maintain interval: PT15S
2025-06-24 22:33:12.372 INFO [r-worker-1] a.p.p.s.c.f.p.PrivacyAgentGeneratorFactory - Created privacy agent generator DefaultPrivacyAgentGenerator | ai.platon.pulsar.skeleton.crawl.fetch.privacy.DefaultPrivacyAgentGenerator
2025-06-24 22:33:12.374 INFO [r-worker-1] a.p.p.s.c.f.p.PrivacyAgent$Companion - You are creating a DEFAULT browser context, force set max browser number to be 1
2025-06-24 22:33:12.461 INFO [r-worker-1] a.p.p.s.c.AppSystemInfo - Operation system: 3.21.3 (unknown) build 6.6.87.2-microsoft-standard-WSL2
2025-06-24 22:33:12.513 INFO [r-worker-1] a.p.p.s.c.AppSystemInfo - Processor: 13th Gen Intel(R) Core(TM) i9-13900H
1 physical CPU package(s)
10 physical CPU core(s)
20 logical CPU(s)
Identifier: Intel64 Family 6 Model 186 Stepping 2
ProcessorID: 1F8BFBFF000B06A2
Microarchitecture: Raptor Lake
2025-06-24 22:33:12.525 INFO [r-worker-1] a.p.p.s.c.AppSystemInfo - Memory: Available: 13.7 GiB/15.6 GiB
2025-06-24 22:33:12.569 INFO [r-worker-1] a.p.p.p.b.e.c.MultiPrivacyContextManager - Permanent privacy context is created | #default | /home/appuser/.pulsar/browser/chrome/default
2025-06-24 22:33:22.598 WARN [r-worker-1] a.p.p.p.b.e.c.BrowserPrivacyContext - Can not create proxy context - No proxy found in pool LoadingProxyPool | total 0, free: 0
2025-06-24 22:33:22.607 INFO [r-worker-1] a.p.p.p.b.d.WebDriverPoolManager - Maintaining service is started, minimal maintain interval: PT15S
2025-06-24 22:33:22.661 INFO [r-worker-1] a.p.p.c.ProcessLauncher - Launching process:
/usr/bin/chromium --headless --disable-gpu --hide-scrollbars --remote-debugging-port=0 --no-default-browser-check --no-first-run --no-startup-window --mute-audio --disable-background-networking --disable-background-timer-throttling --disable-client-side-phishing-detection --disable-hang-monitor --disable-popup-blocking --disable-prompt-on-repost --disable-sync --disable-translate --disable-geolocation --disable-blink-features=AutomationControlled --metrics-recording-only --safebrowsing-disable-auto-update --no-sandbox --ignore-certificate-errors --remote-allow-origins=* --window-position=0,0 --window-size=1920,1080 --pageLoadStrategy=none --throwExceptionOnScriptError=true --user-data-dir=/home/appuser/.pulsar/browser/chrome/default/PULSAR_CHROME
2025-06-24 22:33:39.314 INFO [r-worker-1] a.p.p.e.i.ChatModelImpl - ▶ Chat - [len: 3862] 以下是操作网页的 API 接口及其注释,你可以使用这些接口来操作网页,比如打开网页、点击按钮、输入文本等等。 suspend fun navigateTo(url: String) ...
2025-06-24 22:33:44.468 INFO [r-worker-1] a.p.p.e.i.ChatModelImpl - ◀ Chat - token: 1051 | [len: 102] kotlin suspend fun llmGeneratedFunction(driver: WebDriver) { driver.clearBrowserCookies() ... 2025-06-24 22:33:44.512 INFO [r-worker-1] a.p.p.e.i.ChatModelImpl - ▶ Chat - [len: 3861] 以下是操作网页的 API 接口及其注释,你可以使用这些接口来操作网页,比如打开网页、点击按钮、输入文本等等。 suspend fun navigateTo(url: String) ... 2025-06-24 22:33:50.340 INFO [r-worker-1] a.p.p.e.i.ChatModelImpl - ◀ Chat - token: 1056 | [len: 100] kotlin suspend fun llmGeneratedFunction(driver: WebDriver) { driver.scrollToMiddle(0.5) } ```
2025-06-24 22:34:54.131 INFO [r-worker-1] a.p.p.p.b.e.i.InteractiveBrowserEmulator - Dismiss illegal driver #1: WORKING | browser #1:Active,Permanent,Connected | Unknown chrome IO error | Browser unavailable: enableAPIAgents (0/5) | Failed to enable CDT agents
2025-06-24 22:34:54.141 WARN [r-worker-1] a.p.p.p.b.d.LoadingWebDriverPool - Closing driver that doesn't work unexpectedly #1: RETIRED | browser #1:Active,Permanent,Connected
2025-06-24 22:35:53.217 INFO [r-worker-1] a.p.p.p.b.d.c.d.RobustRPC - 0. [currentUrl] (3/5) | code: -1, Response timeout Page.getFrameTree | #40, (PT20S)
2025-06-24 22:36:52.287 WARN [r-worker-1] a.p.p.p.b.d.c.PulsarWebDriver - ai.platon.pulsar.skeleton.crawl.fetch.driver.IllegalWebDriverStateException: Unknown chrome IO error | Browser unavailable: enableAPIAgents (3/5) | Failed to enable CDT agents
at ai.platon.pulsar.protocol.browser.driver.cdt.detail.RobustRPC.handleChromeIOException(RobustRPC.kt:121)
at ai.platon.pulsar.protocol.browser.driver.cdt.detail.RobustRPC.handleChromeException(RobustRPC.kt:97)
at ai.platon.pulsar.protocol.browser.driver.cdt.PulsarWebDriver.invokeOnPage(PulsarWebDriver.kt:896)
at ai.platon.pulsar.protocol.browser.driver.cdt.PulsarWebDriver.access$invokeOnPage(PulsarWebDriver.kt:43)
at ai.platon.pulsar.protocol.browser.driver.cdt.PulsarWebDriver$invokeOnPage$1.invokeSuspend(PulsarWebDriver.kt)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:102)
at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:277)
at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:95)
at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:69)
at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source)
at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Builders.kt:48)
at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source)
at ai.platon.pulsar.skeleton.crawl.fetch.driver.AbstractWebDriver.close(AbstractWebDriver.kt:696)
at ai.platon.pulsar.protocol.browser.driver.cdt.PulsarWebDriver.doClose(PulsarWebDriver.kt:562)
at ai.platon.pulsar.protocol.browser.driver.cdt.PulsarBrowser.destroyDriver(PulsarBrowser.kt:134)
at ai.platon.pulsar.protocol.browser.driver.cdt.PulsarWebDriver.close(PulsarWebDriver.kt:557)
at ai.platon.pulsar.protocol.browser.impl.BrowserManager.closeDriver(BrowserManager.kt:93)
at ai.platon.pulsar.protocol.browser.driver.ConcurrentStatefulDriverPool.close(ConcurrentStatefulDriverPool.kt:97)
at ai.platon.pulsar.protocol.browser.driver.LoadingWebDriverPool.offerOrDismiss(LoadingWebDriverPool.kt:278)
at ai.platon.pulsar.protocol.browser.driver.LoadingWebDriverPool.put(LoadingWebDriverPool.kt:260)
at ai.platon.pulsar.protocol.browser.driver.WebDriverPoolManager.runWithDriverPool(WebDriverPoolManager.kt:524)
at ai.platon.pulsar.protocol.browser.driver.WebDriverPoolManager.access$runWithDriverPool(WebDriverPoolManager.kt:34)
at ai.platon.pulsar.protocol.browser.driver.WebDriverPoolManager$runWithDriverPool$3.invokeSuspend(WebDriverPoolManager.kt)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.internal.ScopeCoroutine.afterResume(Scopes.kt:28)
at kotlinx.coroutines.AbstractCoroutine.resumeWith(AbstractCoroutine.kt:99)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:104)
at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:277)
at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:95)
at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:69)
at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source)
at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Builders.kt:48)
at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source)
at ai.platon.pulsar.protocol.browser.emulator.AbstractBrowserFetcher.fetchContent(AbstractBrowserFetcher.kt:46)
at ai.platon.pulsar.protocol.browser.BrowserEmulatorProtocol.getResponse(BrowserEmulatorProtocol.kt:40)
at ai.platon.pulsar.skeleton.crawl.protocol.http.AbstractHttpProtocol.getProtocolOutputWithRetry(AbstractHttpProtocol.kt:114)
at ai.platon.pulsar.skeleton.crawl.protocol.http.AbstractHttpProtocol.getProtocolOutput(AbstractHttpProtocol.kt:74)
at ai.platon.pulsar.skeleton.crawl.component.FetchComponent.fetchContent0(FetchComponent.kt:97)
at ai.platon.pulsar.skeleton.crawl.component.FetchComponent.fetchContent(FetchComponent.kt:61)
at ai.platon.pulsar.skeleton.crawl.component.LoadComponent.fetchContent(LoadComponent.kt:686)
at ai.platon.pulsar.skeleton.crawl.component.LoadComponent.fetchContentIfNecessary(LoadComponent.kt:371)
at ai.platon.pulsar.skeleton.crawl.component.LoadComponent.loadNormalURLWithEventHandlers(LoadComponent.kt:317)
at ai.platon.pulsar.skeleton.crawl.component.LoadComponent.loadWithEventHandlers(LoadComponent.kt:297)
at ai.platon.pulsar.skeleton.crawl.component.LoadComponent.loadWithRetry(LoadComponent.kt:208)
at ai.platon.pulsar.skeleton.crawl.component.LoadComponent.load(LoadComponent.kt:180)
at ai.platon.pulsar.skeleton.context.support.AbstractPulsarContext.load(AbstractPulsarContext.kt:379)
at ai.platon.pulsar.skeleton.session.AbstractPulsarSession.loadAndCache(AbstractPulsarSession.kt:603)
at ai.platon.pulsar.skeleton.session.AbstractPulsarSession.load(AbstractPulsarSession.kt:223)
at ai.platon.pulsar.skeleton.session.AbstractPulsarSession.load(AbstractPulsarSession.kt:210)
at ai.platon.pulsar.rest.api.service.LoadService.loadDocument(LoadService.kt:73)
at ai.platon.pulsar.rest.api.service.CommandService.executeCommandStepByStep(CommandService.kt:177)
at ai.platon.pulsar.rest.api.service.CommandService.executeCommand(CommandService.kt:157)
at ai.platon.pulsar.rest.api.service.CommandService$submitAsync$1.invokeSuspend(CommandService.kt:56)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:104)
at kotlinx.coroutines.internal.LimitedDispatcher$Worker.run(LimitedDispatcher.kt:111)
at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:99)
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:584)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:811)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:715)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:702)
Caused by: ai.platon.pulsar.browser.driver.chrome.util.ChromeIOException: Failed to enable CDT agents
at ai.platon.pulsar.protocol.browser.driver.cdt.PulsarWebDriver.enableAPIAgents(PulsarWebDriver.kt:631)
at ai.platon.pulsar.protocol.browser.driver.cdt.PulsarWebDriver$navigateTo$2.invokeSuspend(PulsarWebDriver.kt:117)
at ai.platon.pulsar.protocol.browser.driver.cdt.PulsarWebDriver$navigateTo$2.invoke(PulsarWebDriver.kt)
at ai.platon.pulsar.protocol.browser.driver.cdt.PulsarWebDriver$navigateTo$2.invoke(PulsarWebDriver.kt)
at ai.platon.pulsar.protocol.browser.driver.cdt.PulsarWebDriver$invokeOnPage$2.invokeSuspend(PulsarWebDriver.kt:893)
at ai.platon.pulsar.protocol.browser.driver.cdt.PulsarWebDriver$invokeOnPage$2.invoke(PulsarWebDriver.kt)
at ai.platon.pulsar.protocol.browser.driver.cdt.PulsarWebDriver$invokeOnPage$2.invoke(PulsarWebDriver.kt)
at ai.platon.pulsar.protocol.browser.driver.cdt.detail.RobustRPC$invokeDeferred0$2.invokeSuspend(RobustRPC.kt:156)
... 8 more
Caused by: ai.platon.pulsar.browser.driver.chrome.util.ChromeRPCTimeoutException: Response timeout Page.enable | #43, (PT20S)
at ai.platon.pulsar.browser.driver.chrome.impl.ChromeDevToolsImpl.invoke0(ChromeDevToolsImpl.kt:139)
at ai.platon.pulsar.browser.driver.chrome.impl.ChromeDevToolsImpl.invoke(ChromeDevToolsImpl.kt:114)
at ai.platon.pulsar.browser.driver.chrome.impl.DevToolsInvocationHandler.invoke(DevToolsInvocationHandler.kt:44)
at jdk.proxy2/jdk.proxy2.$Proxy136.enable(Unknown Source)
at ai.platon.pulsar.protocol.browser.driver.cdt.PulsarWebDriver.enableAPIAgents(PulsarWebDriver.kt:614)
... 15 more
2025-06-24 22:36:52.340 INFO [r-worker-1] a.p.p.p.b.e.c.MultiPrivacyContextManager - ⚠ Privacy leak warning 1/100000 | 1#default | 12. Retry(1601) rs: Illegal web driver, rsp: PRIVACY 2025-06-24 22:36:52.414 INFO [r-worker-1] a.p.p.s.c.c.L.Task - 12. 💔 ⚡ U for N got 1601 0 <- 0 in 0s, fc:1 Retry(1601) rs: Illegal web driver, rsp: CRAWL | default | https://www.amazon.com/dp/B0C1H26C46 -refresh 2025-06-24 22:36:52.414 INFO [r-worker-1] a.p.p.s.c.c.L.Task - Log explanation: https://github.com/platonai/PulsarRPA/blob/master/docs/log-format.md 2025-06-24 22:37:20.132 INFO [r-worker-1] a.p.p.s.c.c.L.Task - 15. 💯 🖴 U for RR got 200 1.79 MiB [💿1.79 MiB] in 7.175s, last fetched 27s ago, fc:2 | 25/390/127/397/9901 | default | https://www.amazon.com/dp/B0C1H26C46 -refresh 2025-06-24 22:37:20.310 INFO [r-worker-1] a.p.p.e.i.ChatModelImpl - ▶ Chat - [len: 1020] Summarize the product description, key features, and customer reviews. ### Page Content: Deliv... 2025-06-24 22:37:28.963 INFO [oreMetrics] a.p.p.s.c.CoreMetrics - 🚚 Fetched 1 pages in 5m(0.00 pages/s) successfully | content: 0, 1.79 MiB/s, 6.09 KiB/p 2025-06-24 22:37:39.288 INFO [r-worker-1] a.p.p.e.i.ChatModelImpl - ◀ Chat - token: 611 | [len: 1369] ### Summary of Product Description, Key Features, and Customer Reviews #### **Product Desc... 2025-06-24 22:37:39.290 INFO [r-worker-1] a.p.p.r.a.s.CommandService - pageSummary: ### Summary of Product Description, Key Features, and Customer Reviews
Product Description:
The Huawei P60 Pro is a factory-unlocked, dual-SIM smartphone with 8GB RAM and 256GB storage (Global Model MNA-LX9). It comes in Black and is available for $575.00 with free delivery (estimated June 26–30) and free returns.
Key Features:
- Global Model (MNA-LX9) – Works with multiple carriers.
- Dual SIM – Supports two SIM cards.
- 8GB RAM + 256GB Storage – Smooth performance and ample storage.
- Factory Unlocked – No carrier restrictions.
- Fast Delivery Options – Eligible for same-day or next-day delivery.
Customer Reviews:
- Rating: 3.6/5 stars (based on 41 ratings).
- Positive Feedback: Likely mentions good performance, display quality, or camera capabilities (though specifics aren't provided).
- Negative Feedback: Some users may have concerns about software limitations (e.g., lack of Google services) or other issues affecting the rating.
Final Thoughts:
The Huawei P60 Pro offers strong hardware specs at a mid-range price, but its average rating suggests potential drawbacks (possibly software-related). Buyers should verify compatibility with their network and consider the absence of Google services before purchasing.
2025-06-24 22:37:39.292 INFO [r-worker-1] a.p.p.e.i.ChatModelImpl - ▶ Chat - [len: 1235] Extract the product name as text, price as a numeric value, and ratings as a numeric value or sta...
2025-06-24 22:37:46.083 INFO [r-worker-1] a.p.p.e.i.ChatModelImpl - ◀ Chat - token: 405 | [len: 171] json { "product_name": "Huawei P60 Pro Dual SIM 8GB + 256GB Global Model MNA-LX9 Factory Unl... 2025-06-24 22:37:46.084 INFO [r-worker-1] a.p.p.r.a.s.CommandService - fields: json
{
"product_name": "Huawei P60 Pro Dual SIM 8GB + 256GB Global Model MNA-LX9 Factory Unlocked Mobile Cellphone - Black",
"price": 575.00,
"ratings": 3.6
}
2025-06-24 22:37:46.174 INFO [r-worker-1] a.p.p.r.a.s.CommandService - Use regex to extract 32 links: https?://[^\s]+/dp/[^\s]+
2025-06-24 22:37:46.175 INFO [r-worker-1] a.p.p.r.a.s.CommandService - Finished executeCommandStepByStep | status: Processing | https://www.amazon.com/dp/B0C1H26C46
2025-06-24 22:39:28.961 INFO [oreMetrics] a.p.p.s.c.CoreMetrics - 🚚 Fetched 1 pages in 7m(0.00 pages/s) successfully | content: 0, 1.79 MiB/s, 4.35 KiB/p