DOI-USGS / DOI-USGS/ISIS3

spiceinit web=true returns confusing server error instead of PVL error details when kernels unavailable

Open
#5,946 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
245
Forks
181
Avg merge
1d 22h
Merged PRs (30d)
15

Description

## Summary

When using `spiceinit` with `web=true` and requesting specific kernel types that are unavailable, the command returns a generic confusing server error instead of a detailed PVL error label explaining what went wrong.

## Steps to Reproduce

1. Run spiceinit requesting smithed SPK kernels while disallowing reconstructed:
```
lronac2isis from=./M1470132779LE.IMG to=test.cub
spiceinit from=test.cub spksmithed=true spkrecon=false web=true
```

2. Observe the error message:
```
**ERROR** An error occurred when talking to the server. The server encountered an unexpected error.
```

## Expected Behavior

When requested kernels are unavailable, spiceinit should return a PVL label with detailed error information, similar to what happens in other kernel resolution failures:

```
Group = Kernels
NaifFrameCode = -85600
LeapSecond = $base/kernels/lsk/naif0012.tls
TargetAttitudeShape = ($base/kernels/pck/pck00009.tpc,
$lro/kernels/pck/moon_080317.tf,
$lro/kernels/pck/moon_assoc_me.tf)
TargetPosition = ($lro/kernels/tspk/moon_pa_de421_1900-2050.bpc,
$lro/kernels/tspk/de421.bsp)
InstrumentPointing = ($lro/kernels/ck/lrolc_2024121_2024153_v01.bc,
$lro/kernels/ck/moc42r_2024121_2024152_v01.bc,
$lro/kernels/fk/lro_frames_2014049_v01.tf)
Instrument = $lro/kernels/ik/lro_lroc_v18.ti
SpacecraftClock = $lro/kernels/sclk/lro_clkcor_2025099_v00.tsc
InstrumentPosition = Null
InstrumentAddendum = $lro/kernels/iak/lro_instrumentAddendum_v05.ti
ShapeModel = /pathtomodel/WAC_GLD100_V1.0_GLOBAL_with_L-
OLA_30M_POLE.16bit.lp.demprep.cub
InstrumentPositionQuality = Unknown
InstrumentPointingQuality = Reconstructed
CameraVersion = 2
Error = "No instrument position available"
End_Group
```

This would clearly indicate that the requested smithed SPK kernels are not available for the given observation.

## Actual Behavior

The generic server error provides no actionable information about what went wrong.

## Workaround

Removing `spkrecon=false` allows the command to succeed by downgrading to reconstructed kernels:
```
spiceinit from=test.cub spksmithed=true web=true
```

However, this defeats the purpose when the user specifically needs smithed kernels and wants to know if they're unavailable.

## Environment

- **ISIS Version**: 8.2 and 9.0 (confirmed on both)
- **Operating System**: macOS Tahoe 26.2

## Additional Context

The root cause appears to be missing spksmithed kernels for the observation. The server-side error handling should catch this case and return informative PVL output rather than a generic server error.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.