Summary
JarvisLabs added a top-level currency field to /misc/server_meta. If the API returns currency: "INR", gpuhunt currently passes numeric price_per_hour values through unchanged, and dstack treats/renders them as USD.
This affects offer display and also any logic that assumes price is USD, including max-price filtering, sorting, cost accounting, and metrics.
Steps to reproduce
- Mock the JarvisLabs
/misc/server_meta response with currency: "INR" and a VM-capable offer:
{
"currency": "INR",
"server_meta": [{
"gpu_type": "L4",
"region": "india-noida-01",
"num_free_devices": 1,
"effective_num_free_devices": 1,
"price_per_hour": 100.0,
"vram": "24",
"cpus_per_gpu": 28,
"ram_per_gpu": 124,
"workload_type": "vm",
"num_gpus": "1"
}],
"cpu_meta": {"combinations": []}
}
- Run
dstack offer against JarvisLabs:
dstack offer -b jarvislabs -r india-noida-01 --gpu L4 --on-demand
Actual result
The offer is shown as $100:
# BACKEND RESOURCES INSTANCE TYPE PRICE
1 jarvislabs cpu=28 mem=124GB L4-1x $100
(india-noida-01) disk=100GB gpu=L4:24GB:1
--format json also reports the raw price as 100.0 with no currency metadata.
Expected result
INR prices must not be treated as USD. The cleanest fix is likely to keep the existing gpuhunt/dstack contract that catalog price is USD/hour, and convert JarvisLabs INR values to USD in gpuhunt before emitting offers.
If conversion is not possible without an exchange rate from JarvisLabs, INR offers should be skipped or handled explicitly rather than displayed as dollars.
Validation
This was reproduced with a temporary local dstack server pointed at a mocked JarvisLabs metadata endpoint returning currency: "INR". No real JarvisLabs resources were provisioned.
Summary
JarvisLabs added a top-level
currencyfield to/misc/server_meta. If the API returnscurrency: "INR", gpuhunt currently passes numericprice_per_hourvalues through unchanged, and dstack treats/renders them as USD.This affects offer display and also any logic that assumes
priceis USD, including max-price filtering, sorting, cost accounting, and metrics.Steps to reproduce
/misc/server_metaresponse withcurrency: "INR"and a VM-capable offer:{ "currency": "INR", "server_meta": [{ "gpu_type": "L4", "region": "india-noida-01", "num_free_devices": 1, "effective_num_free_devices": 1, "price_per_hour": 100.0, "vram": "24", "cpus_per_gpu": 28, "ram_per_gpu": 124, "workload_type": "vm", "num_gpus": "1" }], "cpu_meta": {"combinations": []} }dstack offeragainst JarvisLabs:Actual result
The offer is shown as
$100:--format jsonalso reports the raw price as100.0with no currency metadata.Expected result
INR prices must not be treated as USD. The cleanest fix is likely to keep the existing gpuhunt/dstack contract that catalog
priceis USD/hour, and convert JarvisLabs INR values to USD in gpuhunt before emitting offers.If conversion is not possible without an exchange rate from JarvisLabs, INR offers should be skipped or handled explicitly rather than displayed as dollars.
Validation
This was reproduced with a temporary local dstack server pointed at a mocked JarvisLabs metadata endpoint returning
currency: "INR". No real JarvisLabs resources were provisioned.