Tensorflow serving No assets to save/writes when exporting models
ML System Design practice on Codemia
Design recommenders, ranking systems and training pipelines the way ML interviews actually ask for them, with worked solutions.
Introduction
No assets to save/write is usually a harmless export message, not a deployment failure. It means TensorFlow is saving the model graph and variables, but there are no extra asset files such as vocabularies or label files that need to be copied into the SavedModel export.
What Counts as a SavedModel Asset
A TensorFlow SavedModel can contain several kinds of things:
- graph structure
- variables
- signatures
- optional assets
Assets are auxiliary files the model may need at inference time, such as:
- vocabulary files
- lookup tables
- sentencepiece models
- label maps
If your model does not depend on external files, there may simply be no assets to write. That is normal.
Why the Message Appears
When TensorFlow exports a model, it checks whether anything needs to go into the assets/ directory. If the answer is "nothing," it can log a message like No assets to save/write.
That does not mean:
- the export failed
- TensorFlow Serving cannot load the model
- the variables were not written
It usually just means the model is self-contained.
What a Normal Export Looks Like
A simple Keras model often exports without assets:
After export, the directory typically contains:
The assets/ directory may be absent or empty, and that is fine if the model never needed external files.
When Assets Actually Matter
Assets matter when the model depends on external resources. For example, a text model might rely on a vocabulary file used by a lookup layer. In that kind of setup, losing assets would break inference because the exported model would no longer know how to map tokens consistently.
So the real question is not "did TensorFlow mention assets?" The real question is:
- does my model require external files at inference time
If the answer is no, the message is benign.
How to Tell Whether You Expected Assets
Think about the preprocessing path:
- Did you use a vocabulary file
- Did you rely on a label map external to the graph
- Did you wrap a
tf.saved_model.Asset
If yes, inspect the export carefully. If no, the absence of assets is probably correct.
For example, if you intentionally track an external file:
then you do expect asset handling during export. But many dense numeric models never touch this feature.
TensorFlow Serving Does Not Require Assets by Default
TensorFlow Serving can serve a SavedModel perfectly well with:
- graph
- variables
- signatures
Assets are optional. A lot of confusion comes from treating the message like an error because it contains the word "save." In reality, it is often more like an informational note saying, "there were no extra files to copy."
When to Investigate Further
You should investigate only if:
- the model depends on external files
- inference fails after export
- the exported directory is missing files you know should exist
In that case, the asset message is not the bug by itself. It is just a clue that the export did not capture something you expected.
The debugging path is then:
- inspect preprocessing dependencies
- inspect the exported SavedModel directory
- verify the serving signature still matches the training-time pipeline assumptions
Common Pitfalls
- Treating
No assets to save/writeas an error when the model has no external files. - Assuming every SavedModel should contain an
assets/directory. - Forgetting that external vocabularies or label files need to be tracked explicitly if the model depends on them.
- Looking only at the log message instead of checking the actual exported directory and serving behavior.
- Blaming TensorFlow Serving when the real issue is missing preprocessing captured outside the model.
Summary
- '
No assets to save/writeis usually an informational export message, not a failure.' - It means the model had no external asset files that needed to be copied.
- Many ordinary Keras and TensorFlow models export perfectly well without assets.
- Investigate only if the model truly depends on external files at inference time.
- The important question is whether the exported model contains everything your serving path actually needs.
Related reading
- Tensorflow serving No versions of servable MODEL found under base path
- Tensorflow Serving Retrain using Inception Examples
- Tensorflow Serving When to use it rather than simple inference inside Flask service?
- Tensorflow set CUDA_VISIBLE_DEVICES within jupyter
- Tensorflow set_random_seed not working
- Tensorflow set_seed error when running autoencoder
- Tensorflow suppresses logging messages bug
- Tensorflow v1.10 why is an input serving receiver function needed when checkpoints are made without it?

System Design Fundamentals
Build a strong foundation in designing scalable, reliable distributed systems.
View the courseTrack what you have practised
A free account saves your progress, solutions and study plan across every problem on Codemia.
ML System Design practice on Codemia
Design recommenders, ranking systems and training pipelines the way ML interviews actually ask for them, with worked solutions.