Debugging Products


Sometimes products contain errors. For example, a common problem is that a prim tries to use a texture that doesn't exist. This can happen if the texture was uploaded as a "Local Texture", because such textures exist only in the creator's viewer but aren't stored in the assets database. Kitely Market doesn't allow selling products with errors, because buyers would get a product that doesn't look or behave correctly. For example, any prim that uses a "missing texture" would appear white or gray (because white is the default texture, and it looks gray under many lighting conditions).

How to Debug Products

In short, the procedure is as follows:

  • Add items to the product

  • Check if the items contain any errors. If not then you're done; save the product and start selling it! Otherwise, continue.

  • Rez the original items from your inventory

  • Search for the prims that contain errors. The Debug Version can help you with this step; it's explained below.

  • Fix the errors. E.g.: set a new texture on the prim.

  • Take the items back into your inventory

  • Delete the previous items from the product, and upload the fixed items

  • Repeat until all the errors have been fixed

See the blog post Tools For Finding and Fixing Problems in Products for a walkthrough of this procedure, with screenshots.

View Errors in Kitely Market

Add the desired items to the product. In the Edit Product page there's a table that shows the items that you have added. If the items contain any errors then the number of errors will appear above the table. In addition, an error icon will appear next to each of the items that has an error. Click on the error icon to get more information about the problem.

Optional: Use the Debug Version

Next you need to rez the items and find the prims that contain the problems. If the product doesn't contain many prims then this may be easy, so go ahead and do it. But if the product has many prims then you wouldn't want to start clicking on each prim in turn looking for the one prim that has errors. In that case, use the Debug Version to help you. Click on Deliver debug version: this will add to your inventory a special Debug Version of your product. This version has two differences compared to the real product:

  • Prims that contain errors are highlighted in bright red

  • All the prims are numbered, e.g.: "Primitive (Prim #11)". This helps distinguish between different prims with errors (since they all look red).

Fix the Original Items

When you fix your product, make sure you fix the original items, and not the debug version. Typically you would rez the original items and the debug version side-by-side, and then use the debug version as a guide: find a red prim in the debug version, and then look for the corresponding prim in the original items. That's the prim that needs to be fixed.

Update the Product in Kitely Market

After you have fixed the rezzed product, take it back into your inventory and add its items to the product (and delete the previous items). Are there still any errors? If yes then repeat the procedure. If not then you're done!

Save the Product

Once you're done editing the product, click Accept changes. This makes the product available for sale in Kitely Market.

Kitely Market will not allow you to save the product while it has errors. However, it will allow you to save the product if it has warnings. Warnings are a less-severe type of problem. Nevertheless, it is recommended to fix warnings as well.

Types of Errors

Missing default texture: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

The prim's default texture is missing. Set a different texture on the prim.

Missing face texture: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

One or more of the prim's faces is trying to use a missing texture. Set a different texture on that face.

Missing sculpt map / collision sound / etc.: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

This is a grop of problems, all of which mean that the prim is trying to use a missing asset. For example, its Sculpt Map might be missing; in that case the prim will look like a simple shape, e.g. a sphere. Change the prim to use a new (valid) asset.

Missing object / animation / sound / etc.: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

This is a group of problems, all of which mean that the inventory item is referring to a missing asset. The type of asset might be specified (animation, sound, etc). Replace the inventory item with a new inventory item that contains a valid asset.

Missing asset: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

This problem may be similar to the problem above (an inventory item is referring to a missing asset). However, this problem can also appear in scripts: it happens when the script contains a UUID, and that UUID doesn't belong to a known asset. This creates uncertainty for us: the unknown UUID might be an error, but it might also be ok. For example, the script might never use the UUID. Since we're unsure, we consider problems in scripts to be warnings instead of errors, and we allow products with warnings to be saved. It's up to you to figure out if the warning is a real problem, and if so then you must fix it. If you're sure that it's not a problem then you may ignore the warning.

Invalid asset (could not parse)

This is a rare problem: it means that the asset itself (which is an XML file) is in a format that Kitely is unable to parse. Contact Kitely; we might be able to improve our parsing code to support this asset.

This is a Test, Debug or Demo item

We don't allow adding these types of items to products in Kitely Market:

  • Test - items that were created when a merchant clicked "Test delivery" or "Test demo delivery"

  • Debug - items that were created when a merchant clicked "Deliver debug version"

  • Demo - items that were created when a user clicked "Try demo" in the Shopping Cart

If you have such an item in your inventory then presumably you also have the original item, since the "bad" item was copied from the original item. Remove the bad item from the product; find the original item in your inventory; and add the original item to the product.