# ValueError: Signature key 'serving_default' not found in SavedModel. Available keys: ['train', 'eval']. Check the model export configuration.

- **ID:** `tensorflow/savedmodel-signature-key-error`
- **Domain:** tensorflow
- **Category:** config_error
- **Error Code:** `SMSIG`
- **Verification:** ai_generated
- **Fix Rate:** 90%

## Root Cause

The SavedModel was exported with only training and evaluation signatures, lacking the default serving signature required for inference.

## Version Compatibility

| Version | Status | Introduced | Deprecated |
|---------|--------|------------|------------|
| tensorflow==2.10.0 | active | — | — |
| tensorflow==2.12.0 | active | — | — |
| tensorflow==2.15.0 | active | — | — |

## Workarounds

1. **Re-export the model with `tf.saved_model.save` and include a serving signature by specifying `signatures` parameter with a concrete function.** (95% success)
   ```
   Re-export the model with `tf.saved_model.save` and include a serving signature by specifying `signatures` parameter with a concrete function.
   ```
2. **Use `model.save('model.h5')` to save in HDF5 format and then convert to SavedModel with the correct signatures using `tf.keras.models.load_model` and `tf.saved_model.save`.** (85% success)
   ```
   Use `model.save('model.h5')` to save in HDF5 format and then convert to SavedModel with the correct signatures using `tf.keras.models.load_model` and `tf.saved_model.save`.
   ```

## Dead Ends

- **** — Reinstalling TensorFlow does not affect the SavedModel content; the issue is in the export process. (95% fail)
- **** — Changing the input data shape does not add missing signatures; it only affects the data passed to existing signatures. (85% fail)
