Hi,

I'm running CraftingStore v0.1.5 on a Rust server and I'm seeing a recurring exception in console:

Web request produced exception (Url: https://api.craftingstore.net/v4/queue) in 'CraftingStore v0.1.5' plugin (NullReferenceException: Object reference not set to an instance of an object) at Oxide.Core.Libraries.WebRequests+WebRequest.<WaitForResponse>b__44_0 (System.IAsyncResult res) [0x00000] in <15f61ddda771464d8246ebdce8ff4811>:0

My API token is confirmed present and correct in the config, so it doesn't look like a config issue on my end.

Looking at the plugin source, this seems to trace back to GetCallback in CraftingStore.cs.

Roughly: private void GetCallback(int code, string response, string action) { if (response == null || code != 200) { ... }

ApiResponse parsedResponse = ParseResponse(response);

if (!parsedResponse.success) // throws here if parsedResponse is null { ... } }

ParseResponse just calls JsonConvert.DeserializeObject<ApiResponse>(response) with no null check afterward. If the API ever returns HTTP 200 with an empty or unparseable body, DeserializeObject returns null instead of throwing, and the next line (parsedResponse.success) throws the exception above. The same pattern exists in PostCallback.

Questions:

  1. Is this a known issue, and is there a newer build that already handles this?
  2. Since queue items only get marked complete after a successful parse, my understanding is that donations aren't lost when this happens — they just wait for the next poll cycle. Can you confirm that's correct?
  3. If there isn't a fixed version yet, could you confirm whether adding a null check around parsedResponse on my end is a safe workaround until an official fix ships?

Thanks!