diff --git a/plotly/basedatatypes.py b/plotly/basedatatypes.py
index 4c786bc1d..a0c3f057d 100644
--- a/plotly/basedatatypes.py
+++ b/plotly/basedatatypes.py
@@ -3023,6 +3023,8 @@ class BasePlotlyType(object):
             BaseFigure._perform_update(self, dict1)
             BaseFigure._perform_update(self, kwargs)
 
+        return self
+
     @property
     def _in_batch_mode(self):
         """
diff --git a/plotly/matplotlylib/renderer.py b/plotly/matplotlylib/renderer.py
index aca990da9..3d5897a9e 100644
--- a/plotly/matplotlylib/renderer.py
+++ b/plotly/matplotlylib/renderer.py
@@ -735,5 +735,4 @@ class PlotlyRenderer(Renderer):
                 pass
 
     def strip_style(self):
-        self.msg += "Stripping mpl style, deleting keys from data and layout\n"
-        self.plotly_fig.strip_style()
+        self.msg += "Stripping mpl style is no longer supported\n"
diff --git a/plotly/plotly/plotly.py b/plotly/plotly/plotly.py
index 88bf1ca98..a5280c219 100644
--- a/plotly/plotly/plotly.py
+++ b/plotly/plotly/plotly.py
@@ -276,7 +276,6 @@ def iplot_mpl(fig, resize=True, strip_style=False, update=None,
     fig = tools.mpl_to_plotly(fig, resize=resize, strip_style=strip_style)
     if update and isinstance(update, dict):
         fig.update(update)
-        fig.validate()
     elif update is not None:
         raise exceptions.PlotlyGraphObjectError(
             "'update' must be dictionary-like and a valid plotly Figure "

Chaining fig.update()
Based on previous conversations, this would be a nice improvement :)
diff --git a/plotly/tests/test_core/test_graph_objs/test_update.py b/plotly/tests/test_core/test_graph_objs/test_update.py
index 69c71dd03..7932c7c79 100644
--- a/plotly/tests/test_core/test_graph_objs/test_update.py
+++ b/plotly/tests/test_core/test_graph_objs/test_update.py
@@ -15,10 +15,12 @@ class TestUpdateMethod(TestCase):
     def test_update_dict(self):
         title = 'this'
         fig = Figure()
-        fig.update(layout=Layout(title=title))
+        update_res1 = fig.update(layout=Layout(title=title))
         assert fig == Figure(layout=Layout(title=title))
-        fig['layout'].update(xaxis=XAxis())
+        update_res2 = fig['layout'].update(xaxis=XAxis())
         assert fig == Figure(layout=Layout(title=title, xaxis=XAxis()))
+        assert update_res1 is fig
+        assert update_res2 is fig.layout
 
 
     def test_update_list(self):
@@ -26,24 +28,27 @@ class TestUpdateMethod(TestCase):
         trace2 = Scatter(x=[1, 2, 3], y=[3, 2, 1])
         fig = Figure([trace1, trace2])
         update = dict(x=[2, 3, 4], y=[1, 2, 3])
-        fig.data[0].update(update)
-        fig.data[1].update(update)
+        update_res1 = fig.data[0].update(update)
+        update_res2 = fig.data[1].update(update)
 
         d1, d2 = strip_dict_params(fig.data[0], Scatter(x=[2, 3, 4], y=[1, 2, 3]))
         assert d1 == d2
         d1, d2 = strip_dict_params(fig.data[1], Scatter(x=[2, 3, 4], y=[1, 2, 3]))
         assert d1 == d2
+        assert update_res1 is fig.data[0]
+        assert update_res2 is fig.data[1]
 
 
     def test_update_dict_empty(self):
         trace1 = Scatter(x=[1, 2, 3], y=[2, 1, 2])
         trace2 = Scatter(x=[1, 2, 3], y=[3, 2, 1])
         fig = Figure([trace1, trace2])
-        fig.update({})
+        update_res = fig.update({})
         d1, d2 = strip_dict_params(fig.data[0], Scatter(x=[1, 2, 3], y=[2, 1, 2]))
         assert d1 == d2
         d1, d2 = strip_dict_params(fig.data[1], Scatter(x=[1, 2, 3], y=[3, 2, 1]))
         assert d1 == d2
+        assert update_res is fig
 
 
     def test_update_list_empty(self):

pip install -e .[dev]
parse_log_pytest
requirements.txt
pytest pytest-cov pytest-xdist pytest-mock pytest-asyncio
apt-get update apt-get install -y gcc
3.9
requirements.txt
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
attrs==25.3.0
certifi==2025.1.31
charset-normalizer==3.4.1
coverage==7.8.0
decorator==5.2.1
exceptiongroup==1.2.2
execnet==2.1.1
fastjsonschema==2.21.1
idna==3.10
iniconfig==2.1.0
jsonschema==4.23.0
jsonschema-specifications==2024.10.1
jupyter_core==5.7.2
nbformat==5.10.4
packaging==24.2
platformdirs==4.3.7
-e git+https://github.com/plotly/plotly.py.git@7151847dbc7718c103e1441bfd1fc2193dbcf23e#egg=plotly
pluggy==1.5.0
pytest==8.3.5
pytest-asyncio==0.26.0
pytest-cov==6.0.0
pytest-mock==3.14.0
pytest-xdist==3.6.1
pytz==2014.9
referencing==0.36.2
requests==2.32.3
retrying==1.3.3
rpds-py==0.24.0
six==1.8.0
tomli==2.2.1
traitlets==5.14.3
typing_extensions==4.13.0
urllib3==2.3.0

name: plotly.py
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - ca-certificates=2025.2.25=h06a4308_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.4.4=h6a678d5_1
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=3.0.16=h5eee18b_0
  - pip=25.0=py39h06a4308_0
  - python=3.9.21=he870216_1
  - readline=8.2=h5eee18b_0
  - setuptools=75.8.0=py39h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - tzdata=2025a=h04d1e81_0
  - wheel=0.45.1=py39h06a4308_0
  - xz=5.6.4=h5eee18b_1
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - attrs==25.3.0
      - certifi==2025.1.31
      - charset-normalizer==3.4.1
      - coverage==7.8.0
      - decorator==5.2.1
      - exceptiongroup==1.2.2
      - execnet==2.1.1
      - fastjsonschema==2.21.1
      - idna==3.10
      - iniconfig==2.1.0
      - jsonschema==4.23.0
      - jsonschema-specifications==2024.10.1
      - jupyter-core==5.7.2
      - nbformat==5.10.4
      - packaging==24.2
      - platformdirs==4.3.7
      - pluggy==1.5.0
      - pytest==8.3.5
      - pytest-asyncio==0.26.0
      - pytest-cov==6.0.0
      - pytest-mock==3.14.0
      - pytest-xdist==3.6.1
      - pytz==2014.9
      - referencing==0.36.2
      - requests==2.32.3
      - retrying==1.3.3
      - rpds-py==0.24.0
      - six==1.8.0
      - tomli==2.2.1
      - traitlets==5.14.3
      - typing-extensions==4.13.0
      - urllib3==2.3.0
prefix: /opt/conda/envs/plotly.py

plotly/tests/test_core/test_graph_objs/test_update.py::TestUpdateMethod::test_update_dict plotly/tests/test_core/test_graph_objs/test_update.py::TestUpdateMethod::test_update_list
plotly/tests/test_core/test_graph_objs/test_update.py::TestUpdateMethod::test_update_dict_empty plotly/tests/test_core/test_graph_objs/test_update.py::TestUpdateMethod::test_update_initialized_empty_list_with_list plotly/tests/test_core/test_graph_objs/test_update.py::TestUpdateMethod::test_update_initialized_nonempty_list_with_dict plotly/tests/test_core/test_graph_objs/test_update.py::TestUpdateMethod::test_update_list_empty plotly/tests/test_core/test_graph_objs/test_update.py::TestUpdateMethod::test_update_uninitialized_list_with_list
plotly/plotly/plotly.py plotly/matplotlylib/renderer.py plotly/basedatatypes.py
plotly/plotly/plotly.py plotly/matplotlylib/renderer.py plotly/basedatatypes.py