{
  "id": 612346,
  "title": "Kaggle or Colab GPU ??",
  "url": "/competitions/the-3lc-cotton-weed-detection-challenge/discussion/612346",
  "author_name": "",
  "post_date": "2025-10-18T21:36:08.580081700Z",
  "votes": null,
  "comment_count": 27,
  "views": 0,
  "content": "<p>Hi.<br>\nWanted to know if this competition is strictly for local training. Some of us don't locally have GPU services. Are there any restrictions on training model on colab given the restriction(model,version)etc , for a locally (via 3LC) curated and updated dataset.<br>\nPlease suggest any way around if that is the case.</p>",
  "messages": [
    {
      "id": "3303760",
      "postDate": "10/18/2025 21:36:08",
      "content": "<p>Hi.<br>\nWanted to know if this competition is strictly for local training. Some of us don't locally have GPU services. Are there any restrictions on training model on colab given the restriction(model,version)etc , for a locally (via 3LC) curated and updated dataset.<br>\nPlease suggest any way around if that is the case.</p>",
      "rawMarkdown": "Hi.\nWanted to know if this competition is strictly for local training. Some of us don't locally have GPU services. Are there any restrictions on training model on colab given the restriction(model,version)etc , for a locally (via 3LC) curated and updated dataset.\nPlease suggest any way around if that is the case.",
      "votes": null
    },
    {
      "id": "3304062",
      "postDate": "10/19/2025 17:12:38",
      "content": "<p>The main focus of this challenge is to use the 3LC Dashboard extensively and work on the dataset to achieve the highest score. Training will be a minimal part of your effort. You will not get far with just hyperparameter tuning on this dataset. </p>\n<p>The dataset is small enough that CPU training is a viable option. We have been working internally with this dataset on a MacBook and training on the M4 with great success.</p>\n<p>But, to be clear, <strong>there are no restrictions on training</strong>. It can be done locally, remotely, single GPU, multi-GPU, or distributed if you want to.</p>\n<p>You <em>can</em> use Google Colab, if you want, but you must follow the rules of Google Colab when it comes to training and services. Running the 3LC Object Service on the node will violate the Free license of Google Colab, but if you have a Pro license there, it might be fine. If that's an interesting avenue, we have a Google Colab notebook here, <a href=\"https://github.com/3lc-ai/3lc-with-colab\" target=\"_blank\">https://github.com/3lc-ai/3lc-with-colab</a>, which will show you how to set it all up. Using a Google Drive might also be an option. Many ways to work with remote services.</p>\n<p>Other than that, all the CSPs are viable options, and the 3LC team often uses <a href=\"https://lambda.ai\" target=\"_blank\">Lambda.ai</a> for our own training.</p>",
      "rawMarkdown": "The main focus of this challenge is to use the 3LC Dashboard extensively and work on the dataset to achieve the highest score. Training will be a minimal part of your effort. You will not get far with just hyperparameter tuning on this dataset. \n\nThe dataset is small enough that CPU training is a viable option. We have been working internally with this dataset on a MacBook and training on the M4 with great success.\n\nBut, to be clear, **there are no restrictions on training**. It can be done locally, remotely, single GPU, multi-GPU, or distributed if you want to.\n\nYou _can_ use Google Colab, if you want, but you must follow the rules of Google Colab when it comes to training and services. Running the 3LC Object Service on the node will violate the Free license of Google Colab, but if you have a Pro license there, it might be fine. If that's an interesting avenue, we have a Google Colab notebook here, [https://github.com/3lc-ai/3lc-with-colab](https://github.com/3lc-ai/3lc-with-colab), which will show you how to set it all up. Using a Google Drive might also be an option. Many ways to work with remote services.\n\nOther than that, all the CSPs are viable options, and the 3LC team often uses [Lambda.ai](https://lambda.ai) for our own training.",
      "votes": null
    },
    {
      "id": "3305272",
      "postDate": "10/22/2025 12:17:52",
      "content": "<p>can i make inference on kaggle notebook itself?</p>",
      "rawMarkdown": "can i make inference on kaggle notebook itself?",
      "votes": null
    },
    {
      "id": "3305304",
      "postDate": "10/22/2025 13:24:44",
      "content": "<p>Yes, you can run inference wherever you want.</p>",
      "rawMarkdown": "Yes, you can run inference wherever you want.",
      "votes": null
    },
    {
      "id": "3305393",
      "postDate": "10/22/2025 16:43:48",
      "content": "<p>You can use Kaggle Notebooks. Just make appropriate edits to the WORK_DIR path and use uv to install 3lc-ultralytics package. Ping if you face any issues related to 3lc installation while using Kaggle Notebooks.</p>",
      "rawMarkdown": "You can use Kaggle Notebooks. Just make appropriate edits to the WORK_DIR path and use uv to install 3lc-ultralytics package. Ping if you face any issues related to 3lc installation while using Kaggle Notebooks.",
      "votes": null
    },
    {
      "id": "3307671",
      "postDate": "10/27/2025 14:31:06",
      "content": "<p>hello, i am having issues with using it in colab, i have a pro account, data wont' get updated in the dashboard(it is just empty), here is the code. The launch_script was ran in the terminal. Can you show the dashboard and 3lc api part part pls <a href=\"https://www.kaggle.com/rishikeshjadhav2212\" target=\"_blank\">@rishikeshjadhav2212</a></p>",
      "rawMarkdown": "hello, i am having issues with using it in colab, i have a pro account, data wont' get updated in the dashboard(it is just empty), here is the code. The launch_script was ran in the terminal. Can you show the dashboard and 3lc api part part pls @rishikeshjadhav2212",
      "votes": null
    },
    {
      "id": "3308177",
      "postDate": "10/28/2025 19:25:55",
      "content": "<p><a href=\"https://www.kaggle.com/level14taken\" target=\"_blank\">@level14taken</a> (losingself) I went through the notebook you posted, and the output suggests that things are set up correctly. Let's see if we can resolve your issue. Since I am not sure exactly what is going on, let's try a few things.</p>\n<p>First, did you have the dashboard open in a browser at:\n<a href=\"https://dashboard.3lc.ai?object_service=https%3A%2F%2Flela-incommensurate-ricky.ngrok-free.dev\" target=\"_blank\">https://dashboard.3lc.ai?object_service=https%3A%2F%2Flela-incommensurate-ricky.ngrok-free.dev</a>\nNote that the URL was split onto two lines in the notebook output, so I corrected it above.</p>\n<p>Did the dashboard show a red banner at the top with an error message like in the attached dashboard-object-service-error.png? Or was there no banner and a little green plug icon indicating it was connected to the object service?</p>\n<p>Can you share the contents of the particular project the notebook populates at:\n/root/.local/share/3LC/projects/cotton-weed-detection/</p>\n<p>You can also modify the contents of the launch_3lc.sh file that gets created to enable more logging, e.g.:\n3lc --loglevel DEBUG service --ngrok --no-tui</p>\n<p>That will log requests for files coming to the object service from the dashboard, which might give us some insight.</p>\n<p>Finally, can you clarify what you mean by \"show the dashboard and 3lc api part\"? What are you wanting to see an example of?</p>",
      "rawMarkdown": "level14taken (losingself) I went through the notebook you posted, and the output suggests that things are set up correctly. Let's see if we can resolve your issue. Since I am not sure exactly what is going on, let's try a few things.\n\nFirst, did you have the dashboard open in a browser at:\nhttps://dashboard.3lc.ai?object_service=https%3A%2F%2Flela-incommensurate-ricky.ngrok-free.dev\nNote that the URL was split onto two lines in the notebook output, so I corrected it above.\n\nDid the dashboard show a red banner at the top with an error message like in the attached dashboard-object-service-error.png? Or was there no banner and a little green plug icon indicating it was connected to the object service?\n\nCan you share the contents of the particular project the notebook populates at:\n/root/.local/share/3LC/projects/cotton-weed-detection/\n\nYou can also modify the contents of the launch_3lc.sh file that gets created to enable more logging, e.g.:\n3lc --loglevel DEBUG service --ngrok --no-tui\n\nThat will log requests for files coming to the object service from the dashboard, which might give us some insight.\n\nFinally, can you clarify what you mean by \"show the dashboard and 3lc api part\"? What are you wanting to see an example of?",
      "votes": null
    },
    {
      "id": "3308287",
      "postDate": "10/29/2025 03:00:11",
      "content": "<p>hello <a href=\"https://www.kaggle.com/kellywalker3lc\" target=\"_blank\">@kellywalker3lc</a>, the url is definitely not our issue, the dashboard cant' access the dataset in colab maybe it is not searching at right places, log is attached. Does things change between colab and local pc(to use dashboard/api if so what are the changes.) The tables are correctly saved at the path, i checked the test table with (ls /root/.local/share/3LC/projects/cotton-weed-detection/datasets/cotton_weed_test/tables/cotton-weed-test-&gt; object.3lc.json  row_cache.parquet).Can you run a simple yolo train with 3lc-ultralytics on colab with a small dataset and add it to the 3lc dashboard as an example.</p>",
      "rawMarkdown": "hello @kellywalker3lc, the url is definitely not our issue, the dashboard cant' access the dataset in colab maybe it is not searching at right places, log is attached. Does things change between colab and local pc(to use dashboard/api if so what are the changes.) The tables are correctly saved at the path, i checked the test table with (ls /root/.local/share/3LC/projects/cotton-weed-detection/datasets/cotton_weed_test/tables/cotton-weed-test-> object.3lc.json  row_cache.parquet).Can you run a simple yolo train with 3lc-ultralytics on colab with a small dataset and add it to the 3lc dashboard as an example.",
      "votes": null
    },
    {
      "id": "3308580",
      "postDate": "10/29/2025 17:33:25",
      "content": "<p><strong>Notebook</strong></p>\n<p>I was able to run the notebook you originally attached more-or-less as-is, and both the public examples and the competition dataset showed up in the 3LC dashboard.\n<img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F27793746%2F8deebd29d9688e4777719eac3ea2dae4%2FScreenshot%202025-10-29%20123433.png?generation=1761759287924377&amp;alt=media\" alt=\"\"></p>\n<p>I can open a table and see images:\n<img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F27793746%2Fdb2cf80146427dc2774bfbf06499dacb%2FScreenshot%202025-10-29%20122344.png?generation=1761758639522106&amp;alt=media\" alt=\"\"></p>\n<p><strong>Log</strong></p>\n<p>My log (attached) is similar to yours except for the following:</p>\n<p>(1) The competition dataset is shown as indexed in my log:</p>\n<pre><code>lc:   entries  .localLCcotton-weed-detection. UrlReaderWorker:Table: %\n</code></pre>\n<p>I did not see that in your log, but maybe it is from running the script before you had run the notebook cell that creates the train/val/test tables?</p>\n<p>(2) Toward the end you will find requests from the dashboard for 3LC objects, images that are shown, etc. Things like:</p>\n<pre><code>3lc: HTTP Response: =/objects/api://TableIndexingTable, =200, =173ms\n3lc: HTTP Request : =/status\n3lc: HTTP Response: =/status, =200, =4739ms\n3lc: HTTP Request : =/objects/api://RunIndexingTable\n3lc: HTTP Response: =/objects/api://RunIndexingTable, =200, =33ms\n3lc: HTTP Request : =/objects/api://TableIndexingTable\n3lc: HTTP Response: =/objects/api://TableIndexingTable, =200, =12ms\n3lc: HTTP Request : =/objects/api://Configuration\n3lc: HTTP Response: =/objects/api://Configuration, =200, =2ms\n3lc: HTTP Request : =/status\n3lc: HTTP Response: =/status, =200, =1ms\n3lc: HTTP Request : =/objects/api://LogTable\n3lc: HTTP Response: =/objects/api://LogTable, =200, =2ms\n3lc: HTTP Request : =/objects/api://LogTable/rows\n3lc: HTTP Response: =/objects/api://LogTable/rows, =200, =3ms\n3lc: HTTP Request : =/status\n3lc: HTTP Response: =/status, =200, =2ms\n3lc: HTTP Request : =/objects//root/.local/share/3LC/projects/cotton-weed-detection/datasets/cotton_weed_test/tables/cotton-weed-test\n3lc: HTTP Response: =/objects//root/.local/share/3LC/projects/cotton-weed-detection/datasets/cotton_weed_test/tables/cotton-weed-test, =200, =2ms\n3lc: HTTP Request : =/objects//root/.local/share/3LC/projects/cotton-weed-detection/datasets/cotton_weed_test/tables/cotton-weed-test/rows\n3lc: HTTP Response: =/objects//root/.local/share/3LC/projects/cotton-weed-detection/datasets/cotton_weed_test/tables/cotton-weed-test/rows, =200, =2ms\n3lc: HTTP Request : =/external_data//content/cotton_weed_competition_dataset/test/images/20190613_6062W_CM_29.jpg\n3lc: HTTP Request : =/external_data//content/cotton_weed_competition_dataset/test/images/20190613_6062W_CM_36.jpg\n3lc: HTTP Response: =/external_data//content/cotton_weed_competition_dataset/test/images/20190613_6062W_CM_36.jpg, =200, =36ms\n</code></pre>\n<p>Your dashboard shows it is connected but there are no requests logged to the object service, which is a bit of a mystery.</p>\n<p><strong>Next Steps</strong></p>\n<p>This all leads me to think there is some kind of issue with the 3LC dashboard connection after all, perhaps related to ngrok or something else altogether. At first, I thought perhaps it was related to using Firefox, which is not officially supported, but I was able to connect with Firefox as well (minus some eccentricities like not detecting the right GPU). So, let's see if we can get any more insight down this track.</p>\n<p>First, I noticed that there is an error indicator flashing for the Log tab in your screenshot. Can you take a look at that and report back what the error is?</p>\n<p>Second, since there are no logs of requests like this in your log, it is hard to conclude that the dashboard is connecting to the object service at all.</p>\n<pre><code>3lc: HTTP Request : =/status\n3lc: HTTP Response: =/status, =200, =2ms\n</code></pre>\n<p>Have you left the object service running (through <code>launch_3lc.sh</code>) while browsing in the dashboard?</p>\n<p>It may be helpful to try to see what requests are made from the dashboard and what responses they receive. You can do that by opening developer tools (F12 in Firefox) and looking at the Network tab, then refreshing the page. Do you see anything suspicious there?</p>",
      "rawMarkdown": "**Notebook**\n\nI was able to run the notebook you originally attached more-or-less as-is, and both the public examples and the competition dataset showed up in the 3LC dashboard.\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F27793746%2F8deebd29d9688e4777719eac3ea2dae4%2FScreenshot%202025-10-29%20123433.png?generation=1761759287924377&alt=media)\n\nI can open a table and see images:\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F27793746%2Fdb2cf80146427dc2774bfbf06499dacb%2FScreenshot%202025-10-29%20122344.png?generation=1761758639522106&alt=media)\n\n**Log**\n\nMy log (attached) is similar to yours except for the following:\n\n(1) The competition dataset is shown as indexed in my log:\n```\n3lc: Read 3 entries from /root/.local/share/3LC/projects/cotton-weed-detection. UrlReaderWorker:Table: 0%\n```\nI did not see that in your log, but maybe it is from running the script before you had run the notebook cell that creates the train/val/test tables?\n\n(2) Toward the end you will find requests from the dashboard for 3LC objects, images that are shown, etc. Things like:\n```\n3lc: HTTP Response: path=/objects/api://TableIndexingTable, status_code=200, elapsed_time=173ms\n3lc: HTTP Request : path=/status\n3lc: HTTP Response: path=/status, status_code=200, elapsed_time=4739ms\n3lc: HTTP Request : path=/objects/api://RunIndexingTable\n3lc: HTTP Response: path=/objects/api://RunIndexingTable, status_code=200, elapsed_time=33ms\n3lc: HTTP Request : path=/objects/api://TableIndexingTable\n3lc: HTTP Response: path=/objects/api://TableIndexingTable, status_code=200, elapsed_time=12ms\n3lc: HTTP Request : path=/objects/api://Configuration\n3lc: HTTP Response: path=/objects/api://Configuration, status_code=200, elapsed_time=2ms\n3lc: HTTP Request : path=/status\n3lc: HTTP Response: path=/status, status_code=200, elapsed_time=1ms\n3lc: HTTP Request : path=/objects/api://LogTable\n3lc: HTTP Response: path=/objects/api://LogTable, status_code=200, elapsed_time=2ms\n3lc: HTTP Request : path=/objects/api://LogTable/rows\n3lc: HTTP Response: path=/objects/api://LogTable/rows, status_code=200, elapsed_time=3ms\n3lc: HTTP Request : path=/status\n3lc: HTTP Response: path=/status, status_code=200, elapsed_time=2ms\n3lc: HTTP Request : path=/objects//root/.local/share/3LC/projects/cotton-weed-detection/datasets/cotton_weed_test/tables/cotton-weed-test\n3lc: HTTP Response: path=/objects//root/.local/share/3LC/projects/cotton-weed-detection/datasets/cotton_weed_test/tables/cotton-weed-test, status_code=200, elapsed_time=2ms\n3lc: HTTP Request : path=/objects//root/.local/share/3LC/projects/cotton-weed-detection/datasets/cotton_weed_test/tables/cotton-weed-test/rows\n3lc: HTTP Response: path=/objects//root/.local/share/3LC/projects/cotton-weed-detection/datasets/cotton_weed_test/tables/cotton-weed-test/rows, status_code=200, elapsed_time=2ms\n3lc: HTTP Request : path=/external_data//content/cotton_weed_competition_dataset/test/images/20190613_6062W_CM_29.jpg\n3lc: HTTP Request : path=/external_data//content/cotton_weed_competition_dataset/test/images/20190613_6062W_CM_36.jpg\n3lc: HTTP Response: path=/external_data//content/cotton_weed_competition_dataset/test/images/20190613_6062W_CM_36.jpg, status_code=200, elapsed_time=36ms\n```\n\nYour dashboard shows it is connected but there are no requests logged to the object service, which is a bit of a mystery.\n\n**Next Steps**\n\nThis all leads me to think there is some kind of issue with the 3LC dashboard connection after all, perhaps related to ngrok or something else altogether. At first, I thought perhaps it was related to using Firefox, which is not officially supported, but I was able to connect with Firefox as well (minus some eccentricities like not detecting the right GPU). So, let's see if we can get any more insight down this track.\n\nFirst, I noticed that there is an error indicator flashing for the Log tab in your screenshot. Can you take a look at that and report back what the error is?\n\nSecond, since there are no logs of requests like this in your log, it is hard to conclude that the dashboard is connecting to the object service at all.\n```\n3lc: HTTP Request : path=/status\n3lc: HTTP Response: path=/status, status_code=200, elapsed_time=2ms\n```\nHave you left the object service running (through `launch_3lc.sh`) while browsing in the dashboard?\n\nIt may be helpful to try to see what requests are made from the dashboard and what responses they receive. You can do that by opening developer tools (F12 in Firefox) and looking at the Network tab, then refreshing the page. Do you see anything suspicious there?",
      "votes": null
    },
    {
      "id": "3308960",
      "postDate": "10/30/2025 15:54:03",
      "content": "<p>Yes, the launch of the dashboard was made in the terminal and it was not closed while using dashboard , i tried with chrome browser today but same issue i had a warning though that i dont have minimum required gpu. attached the logs(i cant' expand it further). The network tab just shows get requests(nothing suspicious), attached that as well. Thanks. Also today unlike yesterday no errors in logs, it wont work but it looks like it is fetching something(waited for &gt;5 minutes but still the same state), attached that also. Thanks.</p>",
      "rawMarkdown": "Yes, the launch of the dashboard was made in the terminal and it was not closed while using dashboard , i tried with chrome browser today but same issue i had a warning though that i dont have minimum required gpu. attached the logs(i cant' expand it further). The network tab just shows get requests(nothing suspicious), attached that as well. Thanks. Also today unlike yesterday no errors in logs, it wont work but it looks like it is fetching something(waited for >5 minutes but still the same state), attached that also. Thanks.",
      "votes": null
    },
    {
      "id": "3309022",
      "postDate": "10/30/2025 18:45:11",
      "content": "<p>The screenshots seem to show that the response received for status requests to the 3LC object service URL contains HTML and not JSON. The 3LC object service only returns JSON, so it seems that something between the browser and the object service is intercepting the request and returning HTML (maybe for a web page with some kind of error details or something else). That hypothesis aligns with the fact that we see nothing in the 3lc.log indicating requests being processed in the object service, i.e. it never actually sees the requests because they are intercepted.</p>\n<p>It is possible that the \"something between\" is a proxy, VPN, antivirus, etc. but it is hard to tell more from just the screenshots. It is also possible, perhaps even most likely, that it is ngrok itself returning a web page, which it does for various errors. </p>\n<p>Can you try opening a new tab in the browser and entering the ngrok URL for the object service (<a href=\"https://lela-incommensurate-ricky.ngrok-free.dev/status\" target=\"_blank\">https://lela-incommensurate-ricky.ngrok-free.dev/status</a>) directly in the address bar to see what you get back? If such a request reached the object service, you would get back a page like this because the call to \"status\" requires authentication:\n<img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F27793746%2F7ff2853537de4b3856e4861ddc58f461%2FScreenshot%202025-10-30%20133826.png?generation=1761849539071906&amp;alt=media\" alt=\"\"></p>\n<p>(btw replace \"status\" with \"live\" in that URL and the object service would return an OK page showing it is running and reachable)</p>\n<p>If my theory is right, you should instead get back a web page that will give us a clue as to what is going on.</p>",
      "rawMarkdown": "The screenshots seem to show that the response received for status requests to the 3LC object service URL contains HTML and not JSON. The 3LC object service only returns JSON, so it seems that something between the browser and the object service is intercepting the request and returning HTML (maybe for a web page with some kind of error details or something else). That hypothesis aligns with the fact that we see nothing in the 3lc.log indicating requests being processed in the object service, i.e. it never actually sees the requests because they are intercepted.\n\nIt is possible that the \"something between\" is a proxy, VPN, antivirus, etc. but it is hard to tell more from just the screenshots. It is also possible, perhaps even most likely, that it is ngrok itself returning a web page, which it does for various errors. \n\nCan you try opening a new tab in the browser and entering the ngrok URL for the object service (https://lela-incommensurate-ricky.ngrok-free.dev/status) directly in the address bar to see what you get back? If such a request reached the object service, you would get back a page like this because the call to \"status\" requires authentication:\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F27793746%2F7ff2853537de4b3856e4861ddc58f461%2FScreenshot%202025-10-30%20133826.png?generation=1761849539071906&alt=media)\n\n(btw replace \"status\" with \"live\" in that URL and the object service would return an OK page showing it is running and reachable)\n\nIf my theory is right, you should instead get back a web page that will give us a clue as to what is going on.",
      "votes": null
    },
    {
      "id": "3309114",
      "postDate": "10/31/2025 01:35:17",
      "content": "<p>Yep, i works exactly as expected, returns ok with live and returns unauthenticated with status. Do you need anything else to help better?</p>",
      "rawMarkdown": "Yep, i works exactly as expected, returns ok with live and returns unauthenticated with status. Do you need anything else to help better?",
      "votes": null
    },
    {
      "id": "3309171",
      "postDate": "10/31/2025 05:28:52",
      "content": "<p>Hi! I'm using Kaggle, but my notebook stops during submission because it asks for an API key input.\nIs there any way to prevent this issue without requiring manual input?</p>\n<p>code</p>\n<pre><code>\nuser_secrets = UserSecretsClient()\nTHREELC_API_KEY = user_secrets.get_secret()\nos.environ[] = THREELC_API_KEY\n\n tlc\n tlc_ultralytics  YOLO, Settings\n\n\n</code></pre>\n<p>output</p>\n<pre><code>ERROR 3lc: API key error: API key  found.\nEnter API key  [https://accountlc.ai/api-key]\n↑↓  history. Search history  c-↑/c-↓\n</code></pre>",
      "rawMarkdown": "Hi! I'm using Kaggle, but my notebook stops during submission because it asks for an API key input.\nIs there any way to prevent this issue without requiring manual input?\n\ncode\n```python\n# 3LC API Key\nuser_secrets = UserSecretsClient()\nTHREELC_API_KEY = user_secrets.get_secret(\"THREELC_API_KEY\")\nos.environ[\"THREELC_API_KEY\"] = THREELC_API_KEY\n\nimport tlc\nfrom tlc_ultralytics import YOLO, Settings\n# Settings(api_key=os.environ[\"THREELC_API_KEY\"])\n# Settings\n```\noutput\n```python\nERROR 3lc: API key error: API key not found.\nEnter API key from [https://account.3lc.ai/api-key]\n↑↓ for history. Search history with c-↑/c-↓\n```",
      "votes": null
    },
    {
      "id": "3309309",
      "postDate": "10/31/2025 12:27:53",
      "content": "<p>Hmm…that is surprising that you get back the expected pages when browsing directly but that the dashboard does not.</p>\n<p>Can you do the following:</p>\n<ul>\n<li>Run the object service using ngrok and loglevel DEBUG as before</li>\n<li>Browse to the object service \"live\" and \"status\" endpoints directly and post screenshots of the browser with address and page contents</li>\n<li>Open the developer tools network tab</li>\n<li>Browse to the dashboard URL (that has object_service=…)</li>\n<li>Post a screenshot of the Log window with its errors</li>\n<li>Select the requests going to the object service (\"status\" and any pre-flight requests) in the developer tools network tab, inspect the request/response headers, status code, any redirects, and contents if possible; post screenshots of all you can</li>\n<li>Post your 3LC log; we should see it serving the \"live\" and \"status\" requests you entered directly but then presumably nothing after since the dashboard requests seem not to make it</li>\n</ul>\n<p>Thank you for your patience with all of this. I am really hoping we can get to the bottom of the mystery.</p>",
      "rawMarkdown": "Hmm...that is surprising that you get back the expected pages when browsing directly but that the dashboard does not.\n\nCan you do the following:\n- Run the object service using ngrok and loglevel DEBUG as before\n- Browse to the object service \"live\" and \"status\" endpoints directly and post screenshots of the browser with address and page contents\n- Open the developer tools network tab\n- Browse to the dashboard URL (that has object_service=...)\n- Post a screenshot of the Log window with its errors\n- Select the requests going to the object service (\"status\" and any pre-flight requests) in the developer tools network tab, inspect the request/response headers, status code, any redirects, and contents if possible; post screenshots of all you can\n- Post your 3LC log; we should see it serving the \"live\" and \"status\" requests you entered directly but then presumably nothing after since the dashboard requests seem not to make it\n\nThank you for your patience with all of this. I am really hoping we can get to the bottom of the mystery.",
      "votes": null
    },
    {
      "id": "3309312",
      "postDate": "10/31/2025 12:33:56",
      "content": "<p>This will work, you are just using the wrong environment variable. Please use <code>TLC_API_KEY</code> instead, so</p>\n<pre><code>os = user_secrets()\n</code></pre>\n<p>See <a href=\"https://docs.3lc.ai/3lc/latest/user-guide/environment-variables.html\" target=\"_blank\">https://docs.3lc.ai/3lc/latest/user-guide/environment-variables.html</a> for more details</p>",
      "rawMarkdown": "This will work, you are just using the wrong environment variable. Please use `TLC_API_KEY` instead, so\n\n```\nos.environ[\"TLC_API_KEY\"] = user_secrets.get_secret(\"THREELC_API_KEY\")\n```\nSee https://docs.3lc.ai/3lc/latest/user-guide/environment-variables.html for more details",
      "votes": null
    },
    {
      "id": "3309407",
      "postDate": "10/31/2025 16:34:36",
      "content": "<p>Hello, this is working now, the issue is ngrok warning(it did'nt occur to me this was an error untill i looked at the response of dashboard). But ngrok doesn't allow free users to skip this warning. So i tried cloudflare instead of ngrok and it is working(slightly slow though). The colab notebook to achieve this is attached.</p>",
      "rawMarkdown": "Hello, this is working now, the issue is ngrok warning(it did'nt occur to me this was an error untill i looked at the response of dashboard). But ngrok doesn't allow free users to skip this warning. So i tried cloudflare instead of ngrok and it is working(slightly slow though). The colab notebook to achieve this is attached.",
      "votes": null
    },
    {
      "id": "3309471",
      "postDate": "10/31/2025 19:24:05",
      "content": "<p>That is great to hear! We actually had another user with an issue that sounds the same, so I will point them to your post.</p>\n<p>If you are still able to capture one, would you mind attaching a screenshot of the ngrok warning, or perhaps describing it (i.e. what was the warning about) if you don't want to set it back up? That will help me understand the cause better and recognize it if I hear about it from others.</p>\n<p>Also, is there no way to dismiss or bypass the ngrok warning? I guess not or you would not have had to switch to cloudflare.</p>\n<p>As for things being slightly slow, we do have some dashboard performance improvements coming in the next version by the end of next week, but part of it is the indirection through cloudflare to the colab machine, which we probably cannot do much about. In any case, I hope you are able to find and fix lots of weedy data problems with 3LC now.</p>\n<p>Thanks for sticking with it!</p>",
      "rawMarkdown": "That is great to hear! We actually had another user with an issue that sounds the same, so I will point them to your post.\n\nIf you are still able to capture one, would you mind attaching a screenshot of the ngrok warning, or perhaps describing it (i.e. what was the warning about) if you don't want to set it back up? That will help me understand the cause better and recognize it if I hear about it from others.\n\nAlso, is there no way to dismiss or bypass the ngrok warning? I guess not or you would not have had to switch to cloudflare.\n\nAs for things being slightly slow, we do have some dashboard performance improvements coming in the next version by the end of next week, but part of it is the indirection through cloudflare to the colab machine, which we probably cannot do much about. In any case, I hope you are able to find and fix lots of weedy data problems with 3LC now.\n\nThanks for sticking with it!",
      "votes": null
    },
    {
      "id": "3309578",
      "postDate": "11/01/2025 02:12:00",
      "content": "<p>Thank you, i learnt a lot from this. \nIt is something like the attached img.\n It can't be done now <a href=\"https://stackoverflow.com/questions/73017353/how-to-bypass-ngrok-browser-warning#comment138120693_77764864\" target=\"_blank\">reference</a></p>",
      "rawMarkdown": "Thank you, i learnt a lot from this. \nIt is something like the attached img.\n It can't be done now [reference](https://stackoverflow.com/questions/73017353/how-to-bypass-ngrok-browser-warning#comment138120693_77764864)",
      "votes": null
    },
    {
      "id": "3309818",
      "postDate": "11/01/2025 14:04:58",
      "content": "<p>Thank you for this, <a href=\"https://www.kaggle.com/level14taken\" target=\"_blank\">@level14taken</a>!</p>\n<p>We don't actually see the same issue on our attempts to reproduce it, so people's mileage may vary with the ngrok setup.</p>\n<p>We will look into whether we can add an \"ngrok-skip-browser-warning\" header when the 3LC Dashboard communicates with the 3LC Object Service, to make this step a bit easier for everyone.</p>",
      "rawMarkdown": "Thank you for this, @level14taken!\n\nWe don't actually see the same issue on our attempts to reproduce it, so people's mileage may vary with the ngrok setup.\n\nWe will look into whether we can add an \"ngrok-skip-browser-warning\" header when the 3LC Dashboard communicates with the 3LC Object Service, to make this step a bit easier for everyone.",
      "votes": null
    },
    {
      "id": "3310776",
      "postDate": "11/03/2025 16:32:07",
      "content": "<p>Hi again, i am having an issue, the thumbnail loads really fast(in few seconds) in high resolution but the overall image is only loading in a blurry way(and it stays that way), is there a reason for this ? This is being done in colab with ngrok. why does this occur?Attached few screenshots while just testing with coco dataset, that blurriness makes the dashboard unusable.</p>",
      "rawMarkdown": "Hi again, i am having an issue, the thumbnail loads really fast(in few seconds) in high resolution but the overall image is only loading in a blurry way(and it stays that way), is there a reason for this ? This is being done in colab with ngrok. why does this occur?Attached few screenshots while just testing with coco dataset, that blurriness makes the dashboard unusable.",
      "votes": null
    },
    {
      "id": "3310819",
      "postDate": "11/03/2025 17:53:45",
      "content": "<p>This can happen when the browser uses integrated graphics instead of a dedicated GPU for WebGL. You sometimes have to explicitly enable use of GPU-accelerated graphics for the browser. We have some documentation for this, though the process on Linux tends to be a bit more challenging:\n<a href=\"https://docs.3lc.ai/3lc/latest/user-guide/dashboard/gpu-acceleration.html\" target=\"_blank\">https://docs.3lc.ai/3lc/latest/user-guide/dashboard/gpu-acceleration.html</a></p>\n<p>I noticed with my own setup that my dedicated NVIDIA GPU is mis-identified in Firefox, though I am not certain whether that is an issue with Firefox or the library we use to identify the GPU (or compatibility between the two). The 3LC Dashboard sets its initial render settings according to the capabilities of the GPU it thinks is available, so even if GPU acceleration is enabled, if it gets the GPU wrong you could get lower-level settings than the GPU is actually capable of. Can you post a screenshot of your \"About\" window. You can access it by clicking the little \"i\" icon in the top-right corner, then \"About…\". When I did that using Firefox, the sub-menu showed up at the top-left of the webapp. Firefox is not officially supported, so it has some quirks.\n<img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F27793746%2Fff8c26ce219bc897241b77275fac37bb%2FScreenshot%202025-11-03%20115428.png?generation=1762192569169967&amp;alt=media\" alt=\"\"></p>\n<p>You can override the render settings in the Settings window by clicking on the 3LC icon at the top-left and then choosing \"Settings…\". About halfway down in that window is a section titled \"RENDERING PERFORMANCE\" where you can see the \"Active GPU Profile\" currently chosen and manually change it to something higher to see if that improves the image rendering.\n<img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F27793746%2Fccf0f2f7e100b98a2129003f74041e80%2FScreenshot%202025-11-03%20115707.png?generation=1762192721699293&amp;alt=media\" alt=\"\">\n<img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F27793746%2F3b40781a8c6b8734541a15d99baa17cf%2FScreenshot%202025-11-03%20115733.png?generation=1762192731478689&amp;alt=media\" alt=\"\">\n<img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F27793746%2Fb958ae73fe56ba348485307766acc304%2FScreenshot%202025-11-03%20115913.png?generation=1762192817152185&amp;alt=media\" alt=\"\"></p>",
      "rawMarkdown": "This can happen when the browser uses integrated graphics instead of a dedicated GPU for WebGL. You sometimes have to explicitly enable use of GPU-accelerated graphics for the browser. We have some documentation for this, though the process on Linux tends to be a bit more challenging:\nhttps://docs.3lc.ai/3lc/latest/user-guide/dashboard/gpu-acceleration.html\n\nI noticed with my own setup that my dedicated NVIDIA GPU is mis-identified in Firefox, though I am not certain whether that is an issue with Firefox or the library we use to identify the GPU (or compatibility between the two). The 3LC Dashboard sets its initial render settings according to the capabilities of the GPU it thinks is available, so even if GPU acceleration is enabled, if it gets the GPU wrong you could get lower-level settings than the GPU is actually capable of. Can you post a screenshot of your \"About\" window. You can access it by clicking the little \"i\" icon in the top-right corner, then \"About...\". When I did that using Firefox, the sub-menu showed up at the top-left of the webapp. Firefox is not officially supported, so it has some quirks.\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F27793746%2Fff8c26ce219bc897241b77275fac37bb%2FScreenshot%202025-11-03%20115428.png?generation=1762192569169967&alt=media)\n\nYou can override the render settings in the Settings window by clicking on the 3LC icon at the top-left and then choosing \"Settings...\". About halfway down in that window is a section titled \"RENDERING PERFORMANCE\" where you can see the \"Active GPU Profile\" currently chosen and manually change it to something higher to see if that improves the image rendering.\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F27793746%2Fccf0f2f7e100b98a2129003f74041e80%2FScreenshot%202025-11-03%20115707.png?generation=1762192721699293&alt=media)\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F27793746%2F3b40781a8c6b8734541a15d99baa17cf%2FScreenshot%202025-11-03%20115733.png?generation=1762192731478689&alt=media)\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F27793746%2Fb958ae73fe56ba348485307766acc304%2FScreenshot%202025-11-03%20115913.png?generation=1762192817152185&alt=media)",
      "votes": null
    },
    {
      "id": "3310846",
      "postDate": "11/03/2025 18:41:15",
      "content": "<p>yes, it improved, it was previously set to low_performance, when changed to medium the quality improved. Thanks.</p>",
      "rawMarkdown": "yes, it improved, it was previously set to low_performance, when changed to medium the quality improved. Thanks.",
      "votes": null
    },
    {
      "id": "3310850",
      "postDate": "11/03/2025 18:45:22",
      "content": "<p>Sure thing!</p>",
      "rawMarkdown": "Sure thing!",
      "votes": null
    },
    {
      "id": "3310853",
      "postDate": "11/03/2025 18:52:12",
      "content": "<p>It turns out we are already setting the \"ngrok-skip-browser-warning\" header that is supposed to allow for bypassing the NGrok interstitial page as described here:\n<a href=\"https://ngrok.com/docs/pricing-limits/free-plan-limits#using-headers\" target=\"_blank\">https://ngrok.com/docs/pricing-limits/free-plan-limits#using-headers</a></p>\n<p>So, there remains a bit of mystery.</p>",
      "rawMarkdown": "It turns out we are already setting the \"ngrok-skip-browser-warning\" header that is supposed to allow for bypassing the NGrok interstitial page as described here:\nhttps://ngrok.com/docs/pricing-limits/free-plan-limits#using-headers\n\nSo, there remains a bit of mystery.",
      "votes": null
    },
    {
      "id": "3312404",
      "postDate": "11/07/2025 06:07:01",
      "content": "<p>by this way the dashboard is working but slower <a href=\"https://www.kaggle.com/kellywalker3lc\" target=\"_blank\">@kellywalker3lc</a>.  thanks for sharing <a href=\"https://www.kaggle.com/level14taken\" target=\"_blank\">@level14taken</a> </p>",
      "rawMarkdown": "by this way the dashboard is working but slower @kellywalker3lc.  thanks for sharing @level14taken",
      "votes": null
    },
    {
      "id": "3333002",
      "postDate": "11/17/2025 03:51:54",
      "content": "<p><a href=\"https://www.kaggle.com/rishikeshjadhav2212\" target=\"_blank\">@rishikeshjadhav2212</a>  i have a problem when i commit the changes i won't appear in the local. Now, I am using my own laptop cpu instead of kaggle. my leaderboard get stuck at 69 i can't make changes in it.</p>",
      "rawMarkdown": "rishikeshjadhav2212  i have a problem when i commit the changes i won't appear in the local. Now, I am using my own laptop cpu instead of kaggle. my leaderboard get stuck at 69 i can't make changes in it.",
      "votes": null
    },
    {
      "id": "3333055",
      "postDate": "11/17/2025 04:24:39",
      "content": "<p>I'm not sure I'm picking up exactly what you are saying, but let me take a stab at it.</p>\n<p>You are not able to use Kaggle, so you are using a local laptop instead. This is fine; training isn't that time-consuming anyway, so using a local laptop should be fine.</p>\n<p>When you commit changes, they are not visible locally. Does that mean that when you refresh the dashboard, you revert to the original data and no longer see any changes? This would be pretty unusual, as the data shown is coming from the same Object Service to which you just sent a commit. If the Object Service encounters any issues storing the changes you committed, it will display errors in the log output. Do you see any issues in the Object Service logs?</p>\n<p>When you run the training script, it's essential that you point it to the latest revision of the tables after you have made the commit. You can see the full URL to the tables in the dashboard, and copy it by clicking the Icon that appears when you hover over the table name.</p>\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F9654628%2F841a16765c493d05a484af87f4f40679%2F2025-11-16_22-22-27.gif?generation=1763353472071933&amp;alt=media\" alt=\"\"></p>",
      "rawMarkdown": "I'm not sure I'm picking up exactly what you are saying, but let me take a stab at it.\n\nYou are not able to use Kaggle, so you are using a local laptop instead. This is fine; training isn't that time-consuming anyway, so using a local laptop should be fine.\n\nWhen you commit changes, they are not visible locally. Does that mean that when you refresh the dashboard, you revert to the original data and no longer see any changes? This would be pretty unusual, as the data shown is coming from the same Object Service to which you just sent a commit. If the Object Service encounters any issues storing the changes you committed, it will display errors in the log output. Do you see any issues in the Object Service logs?\n\nWhen you run the training script, it's essential that you point it to the latest revision of the tables after you have made the commit. You can see the full URL to the tables in the dashboard, and copy it by clicking the Icon that appears when you hover over the table name.\n\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F9654628%2F841a16765c493d05a484af87f4f40679%2F2025-11-16_22-22-27.gif?generation=1763353472071933&alt=media)",
      "votes": null
    },
    {
      "id": "3336237",
      "postDate": "11/18/2025 12:03:45",
      "content": "<p>Mystery solved!</p>\n<p>We have found a bug in the logic that sets the header that allows for bypassing the NGrok warning page. Sometime after we added that original logic, NGrok made it so free accounts use more than one base domain, and we were only checking for one in particular. A fix will be available in the next 3LC Dashboard release, coming in the next couple of days. Sorry for the trouble and for the confusion.</p>",
      "rawMarkdown": "Mystery solved!\n\nWe have found a bug in the logic that sets the header that allows for bypassing the NGrok warning page. Sometime after we added that original logic, NGrok made it so free accounts use more than one base domain, and we were only checking for one in particular. A fix will be available in the next 3LC Dashboard release, coming in the next couple of days. Sorry for the trouble and for the confusion.",
      "votes": null
    }
  ],
  "comments": [
    {
      "id": 3304062,
      "author_name": "mariusstormolsen",
      "author_url": "",
      "post_date": "10/19/2025 17:12:38",
      "content": "<p>The main focus of this challenge is to use the 3LC Dashboard extensively and work on the dataset to achieve the highest score. Training will be a minimal part of your effort. You will not get far with just hyperparameter tuning on this dataset. </p>\n<p>The dataset is small enough that CPU training is a viable option. We have been working internally with this dataset on a MacBook and training on the M4 with great success.</p>\n<p>But, to be clear, <strong>there are no restrictions on training</strong>. It can be done locally, remotely, single GPU, multi-GPU, or distributed if you want to.</p>\n<p>You <em>can</em> use Google Colab, if you want, but you must follow the rules of Google Colab when it comes to training and services. Running the 3LC Object Service on the node will violate the Free license of Google Colab, but if you have a Pro license there, it might be fine. If that's an interesting avenue, we have a Google Colab notebook here, <a href=\"https://github.com/3lc-ai/3lc-with-colab\" target=\"_blank\">https://github.com/3lc-ai/3lc-with-colab</a>, which will show you how to set it all up. Using a Google Drive might also be an option. Many ways to work with remote services.</p>\n<p>Other than that, all the CSPs are viable options, and the 3LC team often uses <a href=\"https://lambda.ai\" target=\"_blank\">Lambda.ai</a> for our own training.</p>",
      "votes": null,
      "replies": [
        {
          "id": 3305272,
          "author_name": "vaibhav069",
          "author_url": "",
          "post_date": "10/22/2025 12:17:52",
          "content": "<p>can i make inference on kaggle notebook itself?</p>",
          "votes": null,
          "replies": [
            {
              "id": 3305304,
              "author_name": "paulendresen76",
              "author_url": "",
              "post_date": "10/22/2025 13:24:44",
              "content": "<p>Yes, you can run inference wherever you want.</p>",
              "votes": null,
              "replies": []
            },
            {
              "id": 3305393,
              "author_name": "",
              "author_url": "",
              "post_date": "10/22/2025 16:43:48",
              "content": "<p>You can use Kaggle Notebooks. Just make appropriate edits to the WORK_DIR path and use uv to install 3lc-ultralytics package. Ping if you face any issues related to 3lc installation while using Kaggle Notebooks.</p>",
              "votes": null,
              "replies": [
                {
                  "id": 3309171,
                  "author_name": "seitaf",
                  "author_url": "",
                  "post_date": "10/31/2025 05:28:52",
                  "content": "<p>Hi! I'm using Kaggle, but my notebook stops during submission because it asks for an API key input.\nIs there any way to prevent this issue without requiring manual input?</p>\n<p>code</p>\n<pre><code>\nuser_secrets = UserSecretsClient()\nTHREELC_API_KEY = user_secrets.get_secret()\nos.environ[] = THREELC_API_KEY\n\n tlc\n tlc_ultralytics  YOLO, Settings\n\n\n</code></pre>\n<p>output</p>\n<pre><code>ERROR 3lc: API key error: API key  found.\nEnter API key  [https://accountlc.ai/api-key]\n↑↓  history. Search history  c-↑/c-↓\n</code></pre>",
                  "votes": null,
                  "replies": [
                    {
                      "id": 3309312,
                      "author_name": "mrmstormo",
                      "author_url": "",
                      "post_date": "10/31/2025 12:33:56",
                      "content": "<p>This will work, you are just using the wrong environment variable. Please use <code>TLC_API_KEY</code> instead, so</p>\n<pre><code>os = user_secrets()\n</code></pre>\n<p>See <a href=\"https://docs.3lc.ai/3lc/latest/user-guide/environment-variables.html\" target=\"_blank\">https://docs.3lc.ai/3lc/latest/user-guide/environment-variables.html</a> for more details</p>",
                      "votes": null,
                      "replies": []
                    }
                  ]
                },
                {
                  "id": 3333002,
                  "author_name": "vaibhav069",
                  "author_url": "",
                  "post_date": "11/17/2025 03:51:54",
                  "content": "<p><a href=\"https://www.kaggle.com/rishikeshjadhav2212\" target=\"_blank\">@rishikeshjadhav2212</a>  i have a problem when i commit the changes i won't appear in the local. Now, I am using my own laptop cpu instead of kaggle. my leaderboard get stuck at 69 i can't make changes in it.</p>",
                  "votes": null,
                  "replies": [
                    {
                      "id": 3333055,
                      "author_name": "mariusstormolsen",
                      "author_url": "",
                      "post_date": "11/17/2025 04:24:39",
                      "content": "<p>I'm not sure I'm picking up exactly what you are saying, but let me take a stab at it.</p>\n<p>You are not able to use Kaggle, so you are using a local laptop instead. This is fine; training isn't that time-consuming anyway, so using a local laptop should be fine.</p>\n<p>When you commit changes, they are not visible locally. Does that mean that when you refresh the dashboard, you revert to the original data and no longer see any changes? This would be pretty unusual, as the data shown is coming from the same Object Service to which you just sent a commit. If the Object Service encounters any issues storing the changes you committed, it will display errors in the log output. Do you see any issues in the Object Service logs?</p>\n<p>When you run the training script, it's essential that you point it to the latest revision of the tables after you have made the commit. You can see the full URL to the tables in the dashboard, and copy it by clicking the Icon that appears when you hover over the table name.</p>\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F9654628%2F841a16765c493d05a484af87f4f40679%2F2025-11-16_22-22-27.gif?generation=1763353472071933&amp;alt=media\" alt=\"\"></p>",
                      "votes": null,
                      "replies": []
                    }
                  ]
                }
              ]
            }
          ]
        }
      ]
    },
    {
      "id": 3307671,
      "author_name": "level14taken",
      "author_url": "",
      "post_date": "10/27/2025 14:31:06",
      "content": "<p>hello, i am having issues with using it in colab, i have a pro account, data wont' get updated in the dashboard(it is just empty), here is the code. The launch_script was ran in the terminal. Can you show the dashboard and 3lc api part part pls <a href=\"https://www.kaggle.com/rishikeshjadhav2212\" target=\"_blank\">@rishikeshjadhav2212</a></p>",
      "votes": null,
      "replies": [
        {
          "id": 3308177,
          "author_name": "kellywalker3lc",
          "author_url": "",
          "post_date": "10/28/2025 19:25:55",
          "content": "<p><a href=\"https://www.kaggle.com/level14taken\" target=\"_blank\">@level14taken</a> (losingself) I went through the notebook you posted, and the output suggests that things are set up correctly. Let's see if we can resolve your issue. Since I am not sure exactly what is going on, let's try a few things.</p>\n<p>First, did you have the dashboard open in a browser at:\n<a href=\"https://dashboard.3lc.ai?object_service=https%3A%2F%2Flela-incommensurate-ricky.ngrok-free.dev\" target=\"_blank\">https://dashboard.3lc.ai?object_service=https%3A%2F%2Flela-incommensurate-ricky.ngrok-free.dev</a>\nNote that the URL was split onto two lines in the notebook output, so I corrected it above.</p>\n<p>Did the dashboard show a red banner at the top with an error message like in the attached dashboard-object-service-error.png? Or was there no banner and a little green plug icon indicating it was connected to the object service?</p>\n<p>Can you share the contents of the particular project the notebook populates at:\n/root/.local/share/3LC/projects/cotton-weed-detection/</p>\n<p>You can also modify the contents of the launch_3lc.sh file that gets created to enable more logging, e.g.:\n3lc --loglevel DEBUG service --ngrok --no-tui</p>\n<p>That will log requests for files coming to the object service from the dashboard, which might give us some insight.</p>\n<p>Finally, can you clarify what you mean by \"show the dashboard and 3lc api part\"? What are you wanting to see an example of?</p>",
          "votes": null,
          "replies": [
            {
              "id": 3308287,
              "author_name": "level14taken",
              "author_url": "",
              "post_date": "10/29/2025 03:00:11",
              "content": "<p>hello <a href=\"https://www.kaggle.com/kellywalker3lc\" target=\"_blank\">@kellywalker3lc</a>, the url is definitely not our issue, the dashboard cant' access the dataset in colab maybe it is not searching at right places, log is attached. Does things change between colab and local pc(to use dashboard/api if so what are the changes.) The tables are correctly saved at the path, i checked the test table with (ls /root/.local/share/3LC/projects/cotton-weed-detection/datasets/cotton_weed_test/tables/cotton-weed-test-&gt; object.3lc.json  row_cache.parquet).Can you run a simple yolo train with 3lc-ultralytics on colab with a small dataset and add it to the 3lc dashboard as an example.</p>",
              "votes": null,
              "replies": [
                {
                  "id": 3308580,
                  "author_name": "kellywalker3lc",
                  "author_url": "",
                  "post_date": "10/29/2025 17:33:25",
                  "content": "<p><strong>Notebook</strong></p>\n<p>I was able to run the notebook you originally attached more-or-less as-is, and both the public examples and the competition dataset showed up in the 3LC dashboard.\n<img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F27793746%2F8deebd29d9688e4777719eac3ea2dae4%2FScreenshot%202025-10-29%20123433.png?generation=1761759287924377&amp;alt=media\" alt=\"\"></p>\n<p>I can open a table and see images:\n<img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F27793746%2Fdb2cf80146427dc2774bfbf06499dacb%2FScreenshot%202025-10-29%20122344.png?generation=1761758639522106&amp;alt=media\" alt=\"\"></p>\n<p><strong>Log</strong></p>\n<p>My log (attached) is similar to yours except for the following:</p>\n<p>(1) The competition dataset is shown as indexed in my log:</p>\n<pre><code>lc:   entries  .localLCcotton-weed-detection. UrlReaderWorker:Table: %\n</code></pre>\n<p>I did not see that in your log, but maybe it is from running the script before you had run the notebook cell that creates the train/val/test tables?</p>\n<p>(2) Toward the end you will find requests from the dashboard for 3LC objects, images that are shown, etc. Things like:</p>\n<pre><code>3lc: HTTP Response: =/objects/api://TableIndexingTable, =200, =173ms\n3lc: HTTP Request : =/status\n3lc: HTTP Response: =/status, =200, =4739ms\n3lc: HTTP Request : =/objects/api://RunIndexingTable\n3lc: HTTP Response: =/objects/api://RunIndexingTable, =200, =33ms\n3lc: HTTP Request : =/objects/api://TableIndexingTable\n3lc: HTTP Response: =/objects/api://TableIndexingTable, =200, =12ms\n3lc: HTTP Request : =/objects/api://Configuration\n3lc: HTTP Response: =/objects/api://Configuration, =200, =2ms\n3lc: HTTP Request : =/status\n3lc: HTTP Response: =/status, =200, =1ms\n3lc: HTTP Request : =/objects/api://LogTable\n3lc: HTTP Response: =/objects/api://LogTable, =200, =2ms\n3lc: HTTP Request : =/objects/api://LogTable/rows\n3lc: HTTP Response: =/objects/api://LogTable/rows, =200, =3ms\n3lc: HTTP Request : =/status\n3lc: HTTP Response: =/status, =200, =2ms\n3lc: HTTP Request : =/objects//root/.local/share/3LC/projects/cotton-weed-detection/datasets/cotton_weed_test/tables/cotton-weed-test\n3lc: HTTP Response: =/objects//root/.local/share/3LC/projects/cotton-weed-detection/datasets/cotton_weed_test/tables/cotton-weed-test, =200, =2ms\n3lc: HTTP Request : =/objects//root/.local/share/3LC/projects/cotton-weed-detection/datasets/cotton_weed_test/tables/cotton-weed-test/rows\n3lc: HTTP Response: =/objects//root/.local/share/3LC/projects/cotton-weed-detection/datasets/cotton_weed_test/tables/cotton-weed-test/rows, =200, =2ms\n3lc: HTTP Request : =/external_data//content/cotton_weed_competition_dataset/test/images/20190613_6062W_CM_29.jpg\n3lc: HTTP Request : =/external_data//content/cotton_weed_competition_dataset/test/images/20190613_6062W_CM_36.jpg\n3lc: HTTP Response: =/external_data//content/cotton_weed_competition_dataset/test/images/20190613_6062W_CM_36.jpg, =200, =36ms\n</code></pre>\n<p>Your dashboard shows it is connected but there are no requests logged to the object service, which is a bit of a mystery.</p>\n<p><strong>Next Steps</strong></p>\n<p>This all leads me to think there is some kind of issue with the 3LC dashboard connection after all, perhaps related to ngrok or something else altogether. At first, I thought perhaps it was related to using Firefox, which is not officially supported, but I was able to connect with Firefox as well (minus some eccentricities like not detecting the right GPU). So, let's see if we can get any more insight down this track.</p>\n<p>First, I noticed that there is an error indicator flashing for the Log tab in your screenshot. Can you take a look at that and report back what the error is?</p>\n<p>Second, since there are no logs of requests like this in your log, it is hard to conclude that the dashboard is connecting to the object service at all.</p>\n<pre><code>3lc: HTTP Request : =/status\n3lc: HTTP Response: =/status, =200, =2ms\n</code></pre>\n<p>Have you left the object service running (through <code>launch_3lc.sh</code>) while browsing in the dashboard?</p>\n<p>It may be helpful to try to see what requests are made from the dashboard and what responses they receive. You can do that by opening developer tools (F12 in Firefox) and looking at the Network tab, then refreshing the page. Do you see anything suspicious there?</p>",
                  "votes": null,
                  "replies": [
                    {
                      "id": 3308960,
                      "author_name": "level14taken",
                      "author_url": "",
                      "post_date": "10/30/2025 15:54:03",
                      "content": "<p>Yes, the launch of the dashboard was made in the terminal and it was not closed while using dashboard , i tried with chrome browser today but same issue i had a warning though that i dont have minimum required gpu. attached the logs(i cant' expand it further). The network tab just shows get requests(nothing suspicious), attached that as well. Thanks. Also today unlike yesterday no errors in logs, it wont work but it looks like it is fetching something(waited for &gt;5 minutes but still the same state), attached that also. Thanks.</p>",
                      "votes": null,
                      "replies": [
                        {
                          "id": 3309022,
                          "author_name": "kellywalker3lc",
                          "author_url": "",
                          "post_date": "10/30/2025 18:45:11",
                          "content": "<p>The screenshots seem to show that the response received for status requests to the 3LC object service URL contains HTML and not JSON. The 3LC object service only returns JSON, so it seems that something between the browser and the object service is intercepting the request and returning HTML (maybe for a web page with some kind of error details or something else). That hypothesis aligns with the fact that we see nothing in the 3lc.log indicating requests being processed in the object service, i.e. it never actually sees the requests because they are intercepted.</p>\n<p>It is possible that the \"something between\" is a proxy, VPN, antivirus, etc. but it is hard to tell more from just the screenshots. It is also possible, perhaps even most likely, that it is ngrok itself returning a web page, which it does for various errors. </p>\n<p>Can you try opening a new tab in the browser and entering the ngrok URL for the object service (<a href=\"https://lela-incommensurate-ricky.ngrok-free.dev/status\" target=\"_blank\">https://lela-incommensurate-ricky.ngrok-free.dev/status</a>) directly in the address bar to see what you get back? If such a request reached the object service, you would get back a page like this because the call to \"status\" requires authentication:\n<img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F27793746%2F7ff2853537de4b3856e4861ddc58f461%2FScreenshot%202025-10-30%20133826.png?generation=1761849539071906&amp;alt=media\" alt=\"\"></p>\n<p>(btw replace \"status\" with \"live\" in that URL and the object service would return an OK page showing it is running and reachable)</p>\n<p>If my theory is right, you should instead get back a web page that will give us a clue as to what is going on.</p>",
                          "votes": null,
                          "replies": [
                            {
                              "id": 3309114,
                              "author_name": "level14taken",
                              "author_url": "",
                              "post_date": "10/31/2025 01:35:17",
                              "content": "<p>Yep, i works exactly as expected, returns ok with live and returns unauthenticated with status. Do you need anything else to help better?</p>",
                              "votes": null,
                              "replies": [
                                {
                                  "id": 3309309,
                                  "author_name": "kellywalker3lc",
                                  "author_url": "",
                                  "post_date": "10/31/2025 12:27:53",
                                  "content": "<p>Hmm…that is surprising that you get back the expected pages when browsing directly but that the dashboard does not.</p>\n<p>Can you do the following:</p>\n<ul>\n<li>Run the object service using ngrok and loglevel DEBUG as before</li>\n<li>Browse to the object service \"live\" and \"status\" endpoints directly and post screenshots of the browser with address and page contents</li>\n<li>Open the developer tools network tab</li>\n<li>Browse to the dashboard URL (that has object_service=…)</li>\n<li>Post a screenshot of the Log window with its errors</li>\n<li>Select the requests going to the object service (\"status\" and any pre-flight requests) in the developer tools network tab, inspect the request/response headers, status code, any redirects, and contents if possible; post screenshots of all you can</li>\n<li>Post your 3LC log; we should see it serving the \"live\" and \"status\" requests you entered directly but then presumably nothing after since the dashboard requests seem not to make it</li>\n</ul>\n<p>Thank you for your patience with all of this. I am really hoping we can get to the bottom of the mystery.</p>",
                                  "votes": null,
                                  "replies": [
                                    {
                                      "id": 3309407,
                                      "author_name": "level14taken",
                                      "author_url": "",
                                      "post_date": "10/31/2025 16:34:36",
                                      "content": "<p>Hello, this is working now, the issue is ngrok warning(it did'nt occur to me this was an error untill i looked at the response of dashboard). But ngrok doesn't allow free users to skip this warning. So i tried cloudflare instead of ngrok and it is working(slightly slow though). The colab notebook to achieve this is attached.</p>",
                                      "votes": null,
                                      "replies": [
                                        {
                                          "id": 3309471,
                                          "author_name": "kellywalker3lc",
                                          "author_url": "",
                                          "post_date": "10/31/2025 19:24:05",
                                          "content": "<p>That is great to hear! We actually had another user with an issue that sounds the same, so I will point them to your post.</p>\n<p>If you are still able to capture one, would you mind attaching a screenshot of the ngrok warning, or perhaps describing it (i.e. what was the warning about) if you don't want to set it back up? That will help me understand the cause better and recognize it if I hear about it from others.</p>\n<p>Also, is there no way to dismiss or bypass the ngrok warning? I guess not or you would not have had to switch to cloudflare.</p>\n<p>As for things being slightly slow, we do have some dashboard performance improvements coming in the next version by the end of next week, but part of it is the indirection through cloudflare to the colab machine, which we probably cannot do much about. In any case, I hope you are able to find and fix lots of weedy data problems with 3LC now.</p>\n<p>Thanks for sticking with it!</p>",
                                          "votes": null,
                                          "replies": [
                                            {
                                              "id": 3309578,
                                              "author_name": "level14taken",
                                              "author_url": "",
                                              "post_date": "11/01/2025 02:12:00",
                                              "content": "<p>Thank you, i learnt a lot from this. \nIt is something like the attached img.\n It can't be done now <a href=\"https://stackoverflow.com/questions/73017353/how-to-bypass-ngrok-browser-warning#comment138120693_77764864\" target=\"_blank\">reference</a></p>",
                                              "votes": null,
                                              "replies": [
                                                {
                                                  "id": 3309818,
                                                  "author_name": "mariusstormolsen",
                                                  "author_url": "",
                                                  "post_date": "11/01/2025 14:04:58",
                                                  "content": "<p>Thank you for this, <a href=\"https://www.kaggle.com/level14taken\" target=\"_blank\">@level14taken</a>!</p>\n<p>We don't actually see the same issue on our attempts to reproduce it, so people's mileage may vary with the ngrok setup.</p>\n<p>We will look into whether we can add an \"ngrok-skip-browser-warning\" header when the 3LC Dashboard communicates with the 3LC Object Service, to make this step a bit easier for everyone.</p>",
                                                  "votes": null,
                                                  "replies": [
                                                    {
                                                      "id": 3310853,
                                                      "author_name": "kellywalker3lc",
                                                      "author_url": "",
                                                      "post_date": "11/03/2025 18:52:12",
                                                      "content": "<p>It turns out we are already setting the \"ngrok-skip-browser-warning\" header that is supposed to allow for bypassing the NGrok interstitial page as described here:\n<a href=\"https://ngrok.com/docs/pricing-limits/free-plan-limits#using-headers\" target=\"_blank\">https://ngrok.com/docs/pricing-limits/free-plan-limits#using-headers</a></p>\n<p>So, there remains a bit of mystery.</p>",
                                                      "votes": null,
                                                      "replies": [
                                                        {
                                                          "id": 3336237,
                                                          "author_name": "kellywalker3lc",
                                                          "author_url": "",
                                                          "post_date": "11/18/2025 12:03:45",
                                                          "content": "<p>Mystery solved!</p>\n<p>We have found a bug in the logic that sets the header that allows for bypassing the NGrok warning page. Sometime after we added that original logic, NGrok made it so free accounts use more than one base domain, and we were only checking for one in particular. A fix will be available in the next 3LC Dashboard release, coming in the next couple of days. Sorry for the trouble and for the confusion.</p>",
                                                          "votes": null,
                                                          "replies": []
                                                        }
                                                      ]
                                                    }
                                                  ]
                                                }
                                              ]
                                            }
                                          ]
                                        },
                                        {
                                          "id": 3312404,
                                          "author_name": "gokulakrishnanp",
                                          "author_url": "",
                                          "post_date": "11/07/2025 06:07:01",
                                          "content": "<p>by this way the dashboard is working but slower <a href=\"https://www.kaggle.com/kellywalker3lc\" target=\"_blank\">@kellywalker3lc</a>.  thanks for sharing <a href=\"https://www.kaggle.com/level14taken\" target=\"_blank\">@level14taken</a> </p>",
                                          "votes": null,
                                          "replies": []
                                        }
                                      ]
                                    }
                                  ]
                                }
                              ]
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        }
      ]
    },
    {
      "id": 3310776,
      "author_name": "level14taken",
      "author_url": "",
      "post_date": "11/03/2025 16:32:07",
      "content": "<p>Hi again, i am having an issue, the thumbnail loads really fast(in few seconds) in high resolution but the overall image is only loading in a blurry way(and it stays that way), is there a reason for this ? This is being done in colab with ngrok. why does this occur?Attached few screenshots while just testing with coco dataset, that blurriness makes the dashboard unusable.</p>",
      "votes": null,
      "replies": [
        {
          "id": 3310819,
          "author_name": "kellywalker3lc",
          "author_url": "",
          "post_date": "11/03/2025 17:53:45",
          "content": "<p>This can happen when the browser uses integrated graphics instead of a dedicated GPU for WebGL. You sometimes have to explicitly enable use of GPU-accelerated graphics for the browser. We have some documentation for this, though the process on Linux tends to be a bit more challenging:\n<a href=\"https://docs.3lc.ai/3lc/latest/user-guide/dashboard/gpu-acceleration.html\" target=\"_blank\">https://docs.3lc.ai/3lc/latest/user-guide/dashboard/gpu-acceleration.html</a></p>\n<p>I noticed with my own setup that my dedicated NVIDIA GPU is mis-identified in Firefox, though I am not certain whether that is an issue with Firefox or the library we use to identify the GPU (or compatibility between the two). The 3LC Dashboard sets its initial render settings according to the capabilities of the GPU it thinks is available, so even if GPU acceleration is enabled, if it gets the GPU wrong you could get lower-level settings than the GPU is actually capable of. Can you post a screenshot of your \"About\" window. You can access it by clicking the little \"i\" icon in the top-right corner, then \"About…\". When I did that using Firefox, the sub-menu showed up at the top-left of the webapp. Firefox is not officially supported, so it has some quirks.\n<img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F27793746%2Fff8c26ce219bc897241b77275fac37bb%2FScreenshot%202025-11-03%20115428.png?generation=1762192569169967&amp;alt=media\" alt=\"\"></p>\n<p>You can override the render settings in the Settings window by clicking on the 3LC icon at the top-left and then choosing \"Settings…\". About halfway down in that window is a section titled \"RENDERING PERFORMANCE\" where you can see the \"Active GPU Profile\" currently chosen and manually change it to something higher to see if that improves the image rendering.\n<img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F27793746%2Fccf0f2f7e100b98a2129003f74041e80%2FScreenshot%202025-11-03%20115707.png?generation=1762192721699293&amp;alt=media\" alt=\"\">\n<img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F27793746%2F3b40781a8c6b8734541a15d99baa17cf%2FScreenshot%202025-11-03%20115733.png?generation=1762192731478689&amp;alt=media\" alt=\"\">\n<img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F27793746%2Fb958ae73fe56ba348485307766acc304%2FScreenshot%202025-11-03%20115913.png?generation=1762192817152185&amp;alt=media\" alt=\"\"></p>",
          "votes": null,
          "replies": [
            {
              "id": 3310846,
              "author_name": "level14taken",
              "author_url": "",
              "post_date": "11/03/2025 18:41:15",
              "content": "<p>yes, it improved, it was previously set to low_performance, when changed to medium the quality improved. Thanks.</p>",
              "votes": null,
              "replies": [
                {
                  "id": 3310850,
                  "author_name": "kellywalker3lc",
                  "author_url": "",
                  "post_date": "11/03/2025 18:45:22",
                  "content": "<p>Sure thing!</p>",
                  "votes": null,
                  "replies": []
                }
              ]
            }
          ]
        }
      ]
    }
  ],
  "raw_markdown_by_id": {
    "3303760": "Hi.\nWanted to know if this competition is strictly for local training. Some of us don't locally have GPU services. Are there any restrictions on training model on colab given the restriction(model,version)etc , for a locally (via 3LC) curated and updated dataset.\nPlease suggest any way around if that is the case.",
    "3304062": "The main focus of this challenge is to use the 3LC Dashboard extensively and work on the dataset to achieve the highest score. Training will be a minimal part of your effort. You will not get far with just hyperparameter tuning on this dataset. \n\nThe dataset is small enough that CPU training is a viable option. We have been working internally with this dataset on a MacBook and training on the M4 with great success.\n\nBut, to be clear, **there are no restrictions on training**. It can be done locally, remotely, single GPU, multi-GPU, or distributed if you want to.\n\nYou _can_ use Google Colab, if you want, but you must follow the rules of Google Colab when it comes to training and services. Running the 3LC Object Service on the node will violate the Free license of Google Colab, but if you have a Pro license there, it might be fine. If that's an interesting avenue, we have a Google Colab notebook here, [https://github.com/3lc-ai/3lc-with-colab](https://github.com/3lc-ai/3lc-with-colab), which will show you how to set it all up. Using a Google Drive might also be an option. Many ways to work with remote services.\n\nOther than that, all the CSPs are viable options, and the 3LC team often uses [Lambda.ai](https://lambda.ai) for our own training.",
    "3305272": "can i make inference on kaggle notebook itself?",
    "3305304": "Yes, you can run inference wherever you want.",
    "3305393": "You can use Kaggle Notebooks. Just make appropriate edits to the WORK_DIR path and use uv to install 3lc-ultralytics package. Ping if you face any issues related to 3lc installation while using Kaggle Notebooks.",
    "3307671": "hello, i am having issues with using it in colab, i have a pro account, data wont' get updated in the dashboard(it is just empty), here is the code. The launch_script was ran in the terminal. Can you show the dashboard and 3lc api part part pls @rishikeshjadhav2212",
    "3308177": "level14taken (losingself) I went through the notebook you posted, and the output suggests that things are set up correctly. Let's see if we can resolve your issue. Since I am not sure exactly what is going on, let's try a few things.\n\nFirst, did you have the dashboard open in a browser at:\nhttps://dashboard.3lc.ai?object_service=https%3A%2F%2Flela-incommensurate-ricky.ngrok-free.dev\nNote that the URL was split onto two lines in the notebook output, so I corrected it above.\n\nDid the dashboard show a red banner at the top with an error message like in the attached dashboard-object-service-error.png? Or was there no banner and a little green plug icon indicating it was connected to the object service?\n\nCan you share the contents of the particular project the notebook populates at:\n/root/.local/share/3LC/projects/cotton-weed-detection/\n\nYou can also modify the contents of the launch_3lc.sh file that gets created to enable more logging, e.g.:\n3lc --loglevel DEBUG service --ngrok --no-tui\n\nThat will log requests for files coming to the object service from the dashboard, which might give us some insight.\n\nFinally, can you clarify what you mean by \"show the dashboard and 3lc api part\"? What are you wanting to see an example of?",
    "3308287": "hello @kellywalker3lc, the url is definitely not our issue, the dashboard cant' access the dataset in colab maybe it is not searching at right places, log is attached. Does things change between colab and local pc(to use dashboard/api if so what are the changes.) The tables are correctly saved at the path, i checked the test table with (ls /root/.local/share/3LC/projects/cotton-weed-detection/datasets/cotton_weed_test/tables/cotton-weed-test-> object.3lc.json  row_cache.parquet).Can you run a simple yolo train with 3lc-ultralytics on colab with a small dataset and add it to the 3lc dashboard as an example.",
    "3308580": "**Notebook**\n\nI was able to run the notebook you originally attached more-or-less as-is, and both the public examples and the competition dataset showed up in the 3LC dashboard.\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F27793746%2F8deebd29d9688e4777719eac3ea2dae4%2FScreenshot%202025-10-29%20123433.png?generation=1761759287924377&alt=media)\n\nI can open a table and see images:\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F27793746%2Fdb2cf80146427dc2774bfbf06499dacb%2FScreenshot%202025-10-29%20122344.png?generation=1761758639522106&alt=media)\n\n**Log**\n\nMy log (attached) is similar to yours except for the following:\n\n(1) The competition dataset is shown as indexed in my log:\n```\n3lc: Read 3 entries from /root/.local/share/3LC/projects/cotton-weed-detection. UrlReaderWorker:Table: 0%\n```\nI did not see that in your log, but maybe it is from running the script before you had run the notebook cell that creates the train/val/test tables?\n\n(2) Toward the end you will find requests from the dashboard for 3LC objects, images that are shown, etc. Things like:\n```\n3lc: HTTP Response: path=/objects/api://TableIndexingTable, status_code=200, elapsed_time=173ms\n3lc: HTTP Request : path=/status\n3lc: HTTP Response: path=/status, status_code=200, elapsed_time=4739ms\n3lc: HTTP Request : path=/objects/api://RunIndexingTable\n3lc: HTTP Response: path=/objects/api://RunIndexingTable, status_code=200, elapsed_time=33ms\n3lc: HTTP Request : path=/objects/api://TableIndexingTable\n3lc: HTTP Response: path=/objects/api://TableIndexingTable, status_code=200, elapsed_time=12ms\n3lc: HTTP Request : path=/objects/api://Configuration\n3lc: HTTP Response: path=/objects/api://Configuration, status_code=200, elapsed_time=2ms\n3lc: HTTP Request : path=/status\n3lc: HTTP Response: path=/status, status_code=200, elapsed_time=1ms\n3lc: HTTP Request : path=/objects/api://LogTable\n3lc: HTTP Response: path=/objects/api://LogTable, status_code=200, elapsed_time=2ms\n3lc: HTTP Request : path=/objects/api://LogTable/rows\n3lc: HTTP Response: path=/objects/api://LogTable/rows, status_code=200, elapsed_time=3ms\n3lc: HTTP Request : path=/status\n3lc: HTTP Response: path=/status, status_code=200, elapsed_time=2ms\n3lc: HTTP Request : path=/objects//root/.local/share/3LC/projects/cotton-weed-detection/datasets/cotton_weed_test/tables/cotton-weed-test\n3lc: HTTP Response: path=/objects//root/.local/share/3LC/projects/cotton-weed-detection/datasets/cotton_weed_test/tables/cotton-weed-test, status_code=200, elapsed_time=2ms\n3lc: HTTP Request : path=/objects//root/.local/share/3LC/projects/cotton-weed-detection/datasets/cotton_weed_test/tables/cotton-weed-test/rows\n3lc: HTTP Response: path=/objects//root/.local/share/3LC/projects/cotton-weed-detection/datasets/cotton_weed_test/tables/cotton-weed-test/rows, status_code=200, elapsed_time=2ms\n3lc: HTTP Request : path=/external_data//content/cotton_weed_competition_dataset/test/images/20190613_6062W_CM_29.jpg\n3lc: HTTP Request : path=/external_data//content/cotton_weed_competition_dataset/test/images/20190613_6062W_CM_36.jpg\n3lc: HTTP Response: path=/external_data//content/cotton_weed_competition_dataset/test/images/20190613_6062W_CM_36.jpg, status_code=200, elapsed_time=36ms\n```\n\nYour dashboard shows it is connected but there are no requests logged to the object service, which is a bit of a mystery.\n\n**Next Steps**\n\nThis all leads me to think there is some kind of issue with the 3LC dashboard connection after all, perhaps related to ngrok or something else altogether. At first, I thought perhaps it was related to using Firefox, which is not officially supported, but I was able to connect with Firefox as well (minus some eccentricities like not detecting the right GPU). So, let's see if we can get any more insight down this track.\n\nFirst, I noticed that there is an error indicator flashing for the Log tab in your screenshot. Can you take a look at that and report back what the error is?\n\nSecond, since there are no logs of requests like this in your log, it is hard to conclude that the dashboard is connecting to the object service at all.\n```\n3lc: HTTP Request : path=/status\n3lc: HTTP Response: path=/status, status_code=200, elapsed_time=2ms\n```\nHave you left the object service running (through `launch_3lc.sh`) while browsing in the dashboard?\n\nIt may be helpful to try to see what requests are made from the dashboard and what responses they receive. You can do that by opening developer tools (F12 in Firefox) and looking at the Network tab, then refreshing the page. Do you see anything suspicious there?",
    "3308960": "Yes, the launch of the dashboard was made in the terminal and it was not closed while using dashboard , i tried with chrome browser today but same issue i had a warning though that i dont have minimum required gpu. attached the logs(i cant' expand it further). The network tab just shows get requests(nothing suspicious), attached that as well. Thanks. Also today unlike yesterday no errors in logs, it wont work but it looks like it is fetching something(waited for >5 minutes but still the same state), attached that also. Thanks.",
    "3309022": "The screenshots seem to show that the response received for status requests to the 3LC object service URL contains HTML and not JSON. The 3LC object service only returns JSON, so it seems that something between the browser and the object service is intercepting the request and returning HTML (maybe for a web page with some kind of error details or something else). That hypothesis aligns with the fact that we see nothing in the 3lc.log indicating requests being processed in the object service, i.e. it never actually sees the requests because they are intercepted.\n\nIt is possible that the \"something between\" is a proxy, VPN, antivirus, etc. but it is hard to tell more from just the screenshots. It is also possible, perhaps even most likely, that it is ngrok itself returning a web page, which it does for various errors. \n\nCan you try opening a new tab in the browser and entering the ngrok URL for the object service (https://lela-incommensurate-ricky.ngrok-free.dev/status) directly in the address bar to see what you get back? If such a request reached the object service, you would get back a page like this because the call to \"status\" requires authentication:\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F27793746%2F7ff2853537de4b3856e4861ddc58f461%2FScreenshot%202025-10-30%20133826.png?generation=1761849539071906&alt=media)\n\n(btw replace \"status\" with \"live\" in that URL and the object service would return an OK page showing it is running and reachable)\n\nIf my theory is right, you should instead get back a web page that will give us a clue as to what is going on.",
    "3309114": "Yep, i works exactly as expected, returns ok with live and returns unauthenticated with status. Do you need anything else to help better?",
    "3309171": "Hi! I'm using Kaggle, but my notebook stops during submission because it asks for an API key input.\nIs there any way to prevent this issue without requiring manual input?\n\ncode\n```python\n# 3LC API Key\nuser_secrets = UserSecretsClient()\nTHREELC_API_KEY = user_secrets.get_secret(\"THREELC_API_KEY\")\nos.environ[\"THREELC_API_KEY\"] = THREELC_API_KEY\n\nimport tlc\nfrom tlc_ultralytics import YOLO, Settings\n# Settings(api_key=os.environ[\"THREELC_API_KEY\"])\n# Settings\n```\noutput\n```python\nERROR 3lc: API key error: API key not found.\nEnter API key from [https://account.3lc.ai/api-key]\n↑↓ for history. Search history with c-↑/c-↓\n```",
    "3309309": "Hmm...that is surprising that you get back the expected pages when browsing directly but that the dashboard does not.\n\nCan you do the following:\n- Run the object service using ngrok and loglevel DEBUG as before\n- Browse to the object service \"live\" and \"status\" endpoints directly and post screenshots of the browser with address and page contents\n- Open the developer tools network tab\n- Browse to the dashboard URL (that has object_service=...)\n- Post a screenshot of the Log window with its errors\n- Select the requests going to the object service (\"status\" and any pre-flight requests) in the developer tools network tab, inspect the request/response headers, status code, any redirects, and contents if possible; post screenshots of all you can\n- Post your 3LC log; we should see it serving the \"live\" and \"status\" requests you entered directly but then presumably nothing after since the dashboard requests seem not to make it\n\nThank you for your patience with all of this. I am really hoping we can get to the bottom of the mystery.",
    "3309312": "This will work, you are just using the wrong environment variable. Please use `TLC_API_KEY` instead, so\n\n```\nos.environ[\"TLC_API_KEY\"] = user_secrets.get_secret(\"THREELC_API_KEY\")\n```\nSee https://docs.3lc.ai/3lc/latest/user-guide/environment-variables.html for more details",
    "3309407": "Hello, this is working now, the issue is ngrok warning(it did'nt occur to me this was an error untill i looked at the response of dashboard). But ngrok doesn't allow free users to skip this warning. So i tried cloudflare instead of ngrok and it is working(slightly slow though). The colab notebook to achieve this is attached.",
    "3309471": "That is great to hear! We actually had another user with an issue that sounds the same, so I will point them to your post.\n\nIf you are still able to capture one, would you mind attaching a screenshot of the ngrok warning, or perhaps describing it (i.e. what was the warning about) if you don't want to set it back up? That will help me understand the cause better and recognize it if I hear about it from others.\n\nAlso, is there no way to dismiss or bypass the ngrok warning? I guess not or you would not have had to switch to cloudflare.\n\nAs for things being slightly slow, we do have some dashboard performance improvements coming in the next version by the end of next week, but part of it is the indirection through cloudflare to the colab machine, which we probably cannot do much about. In any case, I hope you are able to find and fix lots of weedy data problems with 3LC now.\n\nThanks for sticking with it!",
    "3309578": "Thank you, i learnt a lot from this. \nIt is something like the attached img.\n It can't be done now [reference](https://stackoverflow.com/questions/73017353/how-to-bypass-ngrok-browser-warning#comment138120693_77764864)",
    "3309818": "Thank you for this, @level14taken!\n\nWe don't actually see the same issue on our attempts to reproduce it, so people's mileage may vary with the ngrok setup.\n\nWe will look into whether we can add an \"ngrok-skip-browser-warning\" header when the 3LC Dashboard communicates with the 3LC Object Service, to make this step a bit easier for everyone.",
    "3310776": "Hi again, i am having an issue, the thumbnail loads really fast(in few seconds) in high resolution but the overall image is only loading in a blurry way(and it stays that way), is there a reason for this ? This is being done in colab with ngrok. why does this occur?Attached few screenshots while just testing with coco dataset, that blurriness makes the dashboard unusable.",
    "3310819": "This can happen when the browser uses integrated graphics instead of a dedicated GPU for WebGL. You sometimes have to explicitly enable use of GPU-accelerated graphics for the browser. We have some documentation for this, though the process on Linux tends to be a bit more challenging:\nhttps://docs.3lc.ai/3lc/latest/user-guide/dashboard/gpu-acceleration.html\n\nI noticed with my own setup that my dedicated NVIDIA GPU is mis-identified in Firefox, though I am not certain whether that is an issue with Firefox or the library we use to identify the GPU (or compatibility between the two). The 3LC Dashboard sets its initial render settings according to the capabilities of the GPU it thinks is available, so even if GPU acceleration is enabled, if it gets the GPU wrong you could get lower-level settings than the GPU is actually capable of. Can you post a screenshot of your \"About\" window. You can access it by clicking the little \"i\" icon in the top-right corner, then \"About...\". When I did that using Firefox, the sub-menu showed up at the top-left of the webapp. Firefox is not officially supported, so it has some quirks.\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F27793746%2Fff8c26ce219bc897241b77275fac37bb%2FScreenshot%202025-11-03%20115428.png?generation=1762192569169967&alt=media)\n\nYou can override the render settings in the Settings window by clicking on the 3LC icon at the top-left and then choosing \"Settings...\". About halfway down in that window is a section titled \"RENDERING PERFORMANCE\" where you can see the \"Active GPU Profile\" currently chosen and manually change it to something higher to see if that improves the image rendering.\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F27793746%2Fccf0f2f7e100b98a2129003f74041e80%2FScreenshot%202025-11-03%20115707.png?generation=1762192721699293&alt=media)\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F27793746%2F3b40781a8c6b8734541a15d99baa17cf%2FScreenshot%202025-11-03%20115733.png?generation=1762192731478689&alt=media)\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F27793746%2Fb958ae73fe56ba348485307766acc304%2FScreenshot%202025-11-03%20115913.png?generation=1762192817152185&alt=media)",
    "3310846": "yes, it improved, it was previously set to low_performance, when changed to medium the quality improved. Thanks.",
    "3310850": "Sure thing!",
    "3310853": "It turns out we are already setting the \"ngrok-skip-browser-warning\" header that is supposed to allow for bypassing the NGrok interstitial page as described here:\nhttps://ngrok.com/docs/pricing-limits/free-plan-limits#using-headers\n\nSo, there remains a bit of mystery.",
    "3312404": "by this way the dashboard is working but slower @kellywalker3lc.  thanks for sharing @level14taken",
    "3333002": "rishikeshjadhav2212  i have a problem when i commit the changes i won't appear in the local. Now, I am using my own laptop cpu instead of kaggle. my leaderboard get stuck at 69 i can't make changes in it.",
    "3333055": "I'm not sure I'm picking up exactly what you are saying, but let me take a stab at it.\n\nYou are not able to use Kaggle, so you are using a local laptop instead. This is fine; training isn't that time-consuming anyway, so using a local laptop should be fine.\n\nWhen you commit changes, they are not visible locally. Does that mean that when you refresh the dashboard, you revert to the original data and no longer see any changes? This would be pretty unusual, as the data shown is coming from the same Object Service to which you just sent a commit. If the Object Service encounters any issues storing the changes you committed, it will display errors in the log output. Do you see any issues in the Object Service logs?\n\nWhen you run the training script, it's essential that you point it to the latest revision of the tables after you have made the commit. You can see the full URL to the tables in the dashboard, and copy it by clicking the Icon that appears when you hover over the table name.\n\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F9654628%2F841a16765c493d05a484af87f4f40679%2F2025-11-16_22-22-27.gif?generation=1763353472071933&alt=media)",
    "3336237": "Mystery solved!\n\nWe have found a bug in the logic that sets the header that allows for bypassing the NGrok warning page. Sometime after we added that original logic, NGrok made it so free accounts use more than one base domain, and we were only checking for one in particular. A fix will be available in the next 3LC Dashboard release, coming in the next couple of days. Sorry for the trouble and for the confusion."
  },
  "source": "meta"
}