# AttributeError: 'NoneType' object has no attribute '\_get\_values\_from\_container' (parameter fitting attempt)

**URL:** <https://forum.cadet-web.de/t/attributeerror-nonetype-object-has-no-attribute-get-values-from-container-parameter-fitting-attempt/1319>\
**Category:** CADET Troubleshooting\
**Created:** [September 24, 2025, 2:01pm UTC](https://forum.cadet-web.de/t/attributeerror-nonetype-object-has-no-attribute-get-values-from-container-parameter-fitting-attempt/1319 "2025-09-24T14:01:34Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![AN\_IA](https://forum.cadet-web.de/letter_avatar_proxy/v4/letter/a/da6949/32.png) [@AN\_IA](https://forum.cadet-web.de/u/AN_IA)\
**Post date:** [September 24, 2025, 2:01pm UTC](https://forum.cadet-web.de/t/attributeerror-nonetype-object-has-no-attribute-get-values-from-container-parameter-fitting-attempt/1319/1 "2025-09-24T14:01:34Z")

</div>

### Expected behavior.

Hello everyone,

I have tried to implement parameter fitting into my model. I get this error message:

```
(AttributeError: 'NoneType' object has no attribute '_get_values_from_container'). 

```

Expected behavior:  
After entering the optimization, CADET should optimize and start printing out the results of each generation.

### Actual behavior

The optimization seems to start. For a very long time, nothing happens. Then, before anything is printed out, the given error message appears, and the execution fails.

Here is the complete, very long error message:

* * *

\_RemoteTraceback Traceback (most recent call last)  
\_RemoteTraceback:  
“”"  
Traceback (most recent call last):  
File “e:\Programme\Miniforge3\envs\cadet\_workshop\Lib\site-packages\joblib\externals\loky\process\_executor.py”, line 490, in \_process\_worker  
r = call\_item()  
^^^^^^^^^^^  
File “e:\Programme\Miniforge3\envs\cadet\_workshop\Lib\site-packages\joblib\externals\loky\process\_executor.py”, line 291, in **call**  
return self.fn(\*self.args, \*\*self.kwargs)  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
File “e:\Programme\Miniforge3\envs\cadet\_workshop\Lib\site-packages\joblib\parallel.py”, line 607, in **call**  
return [func(\*args, \*\*kwargs) for func, args, kwargs in self.items]  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
File “e:\Programme\Miniforge3\envs\cadet\_workshop\Lib\site-packages\joblib\parallel.py”, line 607, in   
return [func(\*args, \*\*kwargs) for func, args, kwargs in self.items]  
^^^^^^^^^^^^^^^^^^^^^  
File “e:\Programme\Miniforge3\envs\cadet\_workshop\Lib\site-packages\CADETProcess\optimization\optimizationProblem.py”, line 792, in target\_wrapper  
results = self.\_evaluate\_individual(  
^^^^^^^^^^^^^^^^^^^^^^^^^^  
File “e:\Programme\Miniforge3\envs\cadet\_workshop\Lib\site-packages\CADETProcess\optimization\optimizationProblem.py”, line 838, in \_evaluate\_individual  
value = self.\_evaluate(x, eval\_fun, force)  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
File “e:\Programme\Miniforge3\envs\cadet\_workshop\Lib\site-packages\CADETProcess\optimization\optimizationProblem.py”, line 925, in \_evaluate  
result = step.evaluate(current\_request)  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
File “e:\Programme\Miniforge3\envs\cadet\_workshop\Lib\site-packages\CADETProcess\optimization\optimizationProblem.py”, line 4123, in **call**  
results = self.evaluator(request, \*args, \*\*kwargs)  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
File “e:\Programme\Miniforge3\envs\cadet\_workshop\Lib\site-packages\CADETProcess\simulator\simulator.py”, line 275, in simulate  
results = self.simulate\_n\_cycles(  
^^^^^^^^^^^^^^^^^^^^^^^  
File “e:\Programme\Miniforge3\envs\cadet\_workshop\Lib\site-packages\CADETProcess\log.py”, line 164, in wrapper  
result = function(\*args, \*\*kwargs)  
^^^^^^^^^^^^^^^^^^^^^^^^^  
File “e:\Programme\Miniforge3\envs\cadet\_workshop\Lib\site-packages\CADETProcess\log.py”, line 225, in wrapper  
results = function(\*args, \*\*kwargs)  
^^^^^^^^^^^^^^^^^^^^^^^^^  
File “e:\Programme\Miniforge3\envs\cadet\_workshop\Lib\site-packages\CADETProcess\log.py”, line 200, in wrapper  
raise e  
File “e:\Programme\Miniforge3\envs\cadet\_workshop\Lib\site-packages\CADETProcess\log.py”, line 192, in wrapper  
return function(\*args, \*\*kwargs)  
^^^^^^^^^^^^^^^^^^^^^^^^^  
File “e:\Programme\Miniforge3\envs\cadet\_workshop\Lib\site-packages\CADETProcess\simulator\simulator.py”, line 334, in simulate\_n\_cycles  
return self.\_run(process, \*\*kwargs)  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
File “e:\Programme\Miniforge3\envs\cadet\_workshop\Lib\site-packages\CADETProcess\simulator\cadetAdapter.py”, line 154, in wrapper  
results = func(self, process, \*args, \*\*kwargs)  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
File “e:\Programme\Miniforge3\envs\cadet\_workshop\Lib\site-packages\CADETProcess\simulator\cadetAdapter.py”, line 290, in \_run  
f"Simulation of {process.name} with parameters {process.config} failed."  
File “e:\Programme\Miniforge3\envs\cadet\_workshop\Lib\site-packages\CADETProcess\dataStructure\aggregator.py”, line 88, in **repr**  
return f"NumpyProxyA{self.\_get\_values\_from\_aggregator(). **repr** ()[1:]}"  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
File “e:\Programme\Miniforge3\envs\cadet\_workshop\Lib\site-packages\CADETProcess\dataStructure\aggregator.py”, line 46, in \_get\_values\_from\_aggregator  
return self.aggregator.\_get\_values\_from\_container(self.instance, transpose=True, check=True)  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
AttributeError: ‘NoneType’ object has no attribute ‘\_get\_values\_from\_container’  
“”"

The above exception was the direct cause of the following exception:

AttributeError Traceback (most recent call last)  
Cell In[62], line 3  
1 #Optimieren  
----\> 3 optimization\_results = optimizer.optimize(  
4 optimization\_problem,  
5 use\_checkpoint=False  
6 )

File e:\Programme\Miniforge3\envs\cadet\_workshop\Lib\site-packages\CADETProcess\optimization\optimizer.py:277, in OptimizerBase.optimize(self, optimization\_problem, x0, save\_results, results\_directory, use\_checkpoint, overwrite\_results\_directory, exist\_ok, log\_level, reinit\_cache, delete\_cache, \*args, \*\*kwargs)  
274 plt.switch\_backend(“agg”)  
276 start = time.time()  
 → 277 self.\_run(self.optimization\_problem, x0, \*args, \*\*kwargs)  
278 time\_elapsed = time.time() - start  
280 self.results.time\_elapsed = time\_elapsed

File e:\Programme\Miniforge3\envs\cadet\_workshop\Lib\site-packages\CADETProcess\optimization\pymooAdapter.py:165, in PymooInterface.\_run(self, optimization\_problem, x0)  
162 X = pop.get(“X”).tolist()  
164 # Evaluate objectives and report results  
 → 165 algorithm.evaluator.eval(problem, pop)  
167 F = pop.get(“F”).tolist()  
168 if optimization\_problem.n\_nonlinear\_constraints \> 0:

File e:\Programme\Miniforge3\envs\cadet\_workshop\Lib\site-packages\pymoo\core\evaluator.py:69, in Evaluator.eval(self, problem, pop, skip\_already\_evaluated, evaluate\_values\_of, count\_evals, \*\*kwargs)  
65 # evaluate the solutions (if there are any)  
66 if len(I) \> 0:  
67  
68 # do the actual evaluation - call the sub-function to set the corresponding values to the population  
—\> 69 self.\_eval(problem, pop[I], evaluate\_values\_of, \*\*kwargs)  
71 # update the function evaluation counter  
72 if count\_evals:

File e:\Programme\Miniforge3\envs\cadet\_workshop\Lib\site-packages\pymoo\core\evaluator.py:90, in Evaluator.\_eval(self, problem, pop, evaluate\_values\_of, \*\*kwargs)  
87 X = pop.get(“X”)  
89 # call the problem to evaluate the solutions  
—\> 90 out = problem.evaluate(X, return\_values\_of=evaluate\_values\_of, return\_as\_dictionary=True, \*\*kwargs)  
92 # for each of the attributes set it to the problem  
93 for key, val in out.items():

File e:\Programme\Miniforge3\envs\cadet\_workshop\Lib\site-packages\pymoo\core\problem.py:257, in Problem.evaluate(self, X, return\_values\_of, return\_as\_dictionary, \*args, \*\*kwargs)  
254 only\_single\_value = not (isinstance(X, list) or isinstance(X, np.ndarray))  
256 # this is where the actual evaluation takes place  
 → 257 \_out = self.do(X, return\_values\_of, \*args, \*\*kwargs)  
259 out = {}  
260 for k, v in \_out.items():  
261  
262 # copy it to a numpy array (it might be one of jax at this point)

File e:\Programme\Miniforge3\envs\cadet\_workshop\Lib\site-packages\pymoo\core\problem.py:299, in Problem.do(self, X, return\_values\_of, \*args, \*\*kwargs)  
297 self.\_evaluate\_elementwise(X, out, \*args, \*\*kwargs)  
298 else:  
 → 299 self.\_evaluate\_vectorized(X, out, \*args, \*\*kwargs)  
301 # finally format the output dictionary  
302 out = self.\_format\_dict(out, len(X), return\_values\_of)

File e:\Programme\Miniforge3\envs\cadet\_workshop\Lib\site-packages\pymoo\core\problem.py:307, in Problem.\_evaluate\_vectorized(self, X, out, \*args, \*\*kwargs)  
306 def \_evaluate\_vectorized(self, X, out, \*args, \*\*kwargs):  
 → 307 self.\_evaluate(X, out, \*args, \*\*kwargs)

File e:\Programme\Miniforge3\envs\cadet\_workshop\Lib\site-packages\CADETProcess\optimization\pymooAdapter.py:293, in PymooProblem.\_evaluate(self, X, out, \*args, \*\*kwargs)  
291 opt = self.optimization\_problem  
292 if opt.n\_objectives \> 0:  
 → 293 F = opt.evaluate\_objectives(  
294 X,  
295 untransform=True,  
296 get\_dependent\_values=True,  
297 ensure\_minimization=True,  
298 parallelization\_backend=self.parallelization\_backend,  
299 )  
300 out[“F”] = np.array(F)  
302 if opt.n\_nonlinear\_constraints \> 0:

File e:\Programme\Miniforge3\envs\cadet\_workshop\Lib\site-packages\CADETProcess\optimization\optimizationProblem.py:206, in OptimizationProblem.ensures2d..wrapper\_ensures2d(self, X, \*args, \*\*kwargs)  
203 X\_2d = np.array(X, ndmin=2)  
205 # Call and ensure results are 2D  
 → 206 Y = func(self, X\_2d, \*args, \*\*kwargs)  
207 Y\_2d = Y.reshape((len(X\_2d), -1))  
209 # Reshape back to original length of X

File e:\Programme\Miniforge3\envs\cadet\_workshop\Lib\site-packages\CADETProcess\optimization\optimizationProblem.py:169, in OptimizationProblem.untransforms..wrapper\_untransforms(self, x, untransform, \*args, \*\*kwargs)  
166 if untransform:  
167 x = self.untransform(x)  
 → 169 return func(self, x, \*args, \*\*kwargs)

File e:\Programme\Miniforge3\envs\cadet\_workshop\Lib\site-packages\CADETProcess\optimization\optimizationProblem.py:187, in OptimizationProblem.gets\_dependent\_values..wrapper\_gets\_dependent\_values(self, x, get\_dependent\_values, \*args, \*\*kwargs)  
184 if get\_dependent\_values:  
185 x = self.get\_dependent\_values(x)  
 → 187 return func(self, x, \*args, \*\*kwargs)

File e:\Programme\Miniforge3\envs\cadet\_workshop\Lib\site-packages\CADETProcess\optimization\optimizationProblem.py:228, in OptimizationProblem.ensures\_minimization..wrap..wrapper\_ensures\_minimization(self, ensure\_minimization, \*args, \*\*kwargs)  
221 @wraps(func)  
222 def wrapper\_ensures\_minimization(  
223 self: OptimizationProblem,  
(…) 226 \*\*kwargs: Any,  
227 ) → Any:  
 → 228 s = func(self, \*args, \*\*kwargs)  
230 if ensure\_minimization:  
231 s = self.transform\_maximization(s, scores)

File e:\Programme\Miniforge3\envs\cadet\_workshop\Lib\site-packages\CADETProcess\optimization\optimizationProblem.py:1171, in OptimizationProblem.evaluate\_objectives(self, X, parallelization\_backend, force)  
1136 @ensures2d  
1137 @untransforms  
1138 @gets\_dependent\_values  
(…) 1144 force: bool = False,  
1145 ) → np.ndarray:  
1146 “”"  
1147 Evaluate objective functions for each individual x in population X.  
1148  
(…) 1169 \_evaluate  
1170 “”"  
 → 1171 return self.\_evaluate\_population(  
1172 target\_functions=self.objectives,  
1173 X=X,  
1174 parallelization\_backend=parallelization\_backend,  
1175 force=force,  
1176 )

File e:\Programme\Miniforge3\envs\cadet\_workshop\Lib\site-packages\CADETProcess\optimization\optimizationProblem.py:801, in OptimizationProblem.\_evaluate\_population(self, target\_functions, X, parallelization\_backend, force)  
797 self.cache.close()  
799 return results  
 → 801 results = parallelization\_backend.evaluate(target\_wrapper, X)  
802 return np.array(results, ndmin=2)

File e:\Programme\Miniforge3\envs\cadet\_workshop\Lib\site-packages\CADETProcess\optimization\parallelizationBackend.py:153, in Joblib.evaluate(self, function, population)  
137 “”"  
138 Evaluate the function in parallalel for all individuals of the population.  
139  
(…) 150 List of results of function evaluations.  
151 “”"  
152 backend = Parallel(n\_jobs=self.n\_cores, verbose=self.verbose)  
 → 153 results = backend(delayed(function)(x) for x in population)  
155 return results

File e:\Programme\Miniforge3\envs\cadet\_workshop\Lib\site-packages\joblib\parallel.py:2072, in Parallel. **call** (self, iterable)  
2066 # The first item from the output is blank, but it makes the interpreter  
2067 # progress until it enters the Try/Except block of the generator and  
2068 # reaches the first `yield` statement. This starts the asynchronous  
2069 # dispatch of the tasks to the workers.  
2070 next(output)  
 → 2072 return output if self.return\_generator else list(output)

File e:\Programme\Miniforge3\envs\cadet\_workshop\Lib\site-packages\joblib\parallel.py:1682, in Parallel.\_get\_outputs(self, iterator, pre\_dispatch)  
1679 yield  
1681 with self.\_backend.retrieval\_context():  
 → 1682 yield from self.\_retrieve()  
1684 except GeneratorExit:  
1685 # The generator has been garbage collected before being fully  
1686 # consumed. This aborts the remaining tasks if possible and warn  
1687 # the user if necessary.  
1688 self.\_exception = True

File e:\Programme\Miniforge3\envs\cadet\_workshop\Lib\site-packages\joblib\parallel.py:1784, in Parallel.\_retrieve(self)  
1778 while self.\_wait\_retrieval():  
1779 # If the callback thread of a worker has signaled that its task  
1780 # triggered an exception, or if the retrieval loop has raised an  
1781 # exception (e.g. `GeneratorExit`), exit the loop and surface the  
1782 # worker traceback.  
1783 if self.\_aborting:  
 → 1784 self.\_raise\_error\_fast()  
1785 break  
1787 nb\_jobs = len(self.\_jobs)

File e:\Programme\Miniforge3\envs\cadet\_workshop\Lib\site-packages\joblib\parallel.py:1859, in Parallel.\_raise\_error\_fast(self)  
1855 # If this error job exists, immediately raise the error by  
1856 # calling get\_result. This job might not exists if abort has been  
1857 # called directly or if the generator is gc’ed.  
1858 if error\_job is not None:  
 → 1859 error\_job.get\_result(self.timeout)

File e:\Programme\Miniforge3\envs\cadet\_workshop\Lib\site-packages\joblib\parallel.py:758, in BatchCompletionCallBack.get\_result(self, timeout)  
752 backend = self.parallel.\_backend  
754 if backend.supports\_retrieve\_callback:  
755 # We assume that the result has already been retrieved by the  
756 # callback thread, and is stored internally. It’s just waiting to  
757 # be returned.  
 → 758 return self.\_return\_or\_raise()  
760 # For other backends, the main thread needs to run the retrieval step.  
761 try:

File e:\Programme\Miniforge3\envs\cadet\_workshop\Lib\site-packages\joblib\parallel.py:773, in BatchCompletionCallBack.\_return\_or\_raise(self)  
771 try:  
772 if self.status == TASK\_ERROR:  
 → 773 raise self.\_result  
774 return self.\_result  
775 finally:

AttributeError: ‘NoneType’ object has no attribute ‘\_get\_values\_from\_container’

* * *

### How to produce bug (including a minimal reproducible example)

The problem occurs, when I try to fit the film diffusion for every single one of my 6 components simultaneously. I’ve tried the same model, but then excluded all comonents except the one with index 5 for film diffusion fitting. This worked.

I provide an MRE: Fit\_Error\_get\_result\_MRE.py. It requires IA-values\_pH8\_MRE.xlsx for the reference data. Both in the provided repository.

I’ve started to speculate that this error might be caused by at least one of the evaluation-simulations failing. Maybe you could confirm this, or else explain, what is actually happening, and eventually, how it could be fixed? That would be much appreciated.

Greetings, AN\_IA

### Optional link to repository (oriented around this template: [GitHub - modsim/bug\_report\_example: Template for reporting bugs including code and data](https://github.com/modsim/bug_report_example))

> **[GitHub - b26marauder-pixel/My\_CADET\_repo](https://github.com/b26marauder-pixel/My_CADET_repo/tree/main)**
>
> main

---

<div class="post-metadata">

**Author:** ![h.lanzrath](https://forum.cadet-web.de/user_avatar/forum.cadet-web.de/h.lanzrath/32/1186_2.png) [@h.lanzrath](https://forum.cadet-web.de/u/h.lanzrath)\
**Post date:** [September 25, 2025, 9:19am UTC](https://forum.cadet-web.de/t/attributeerror-nonetype-object-has-no-attribute-get-values-from-container-parameter-fitting-attempt/1319/2 "2025-09-25T09:19:07Z")

</div>

Hi AN\_IA,

Thanks for reporting your issue.

Since the error occurs inside the joblib package, I would like to rule out any parallelisation issues. Please set `optimizer.n_cores = 1` in your optimisation run and let me know if the error persists.

All the best,  
Hannah

---

<div class="post-metadata">

**Author:** ![AN\_IA](https://forum.cadet-web.de/letter_avatar_proxy/v4/letter/a/da6949/32.png) [@AN\_IA](https://forum.cadet-web.de/u/AN_IA)\
**Post date:** [October 13, 2025, 2:40pm UTC](https://forum.cadet-web.de/t/attributeerror-nonetype-object-has-no-attribute-get-values-from-container-parameter-fitting-attempt/1319/3 "2025-10-13T14:40:23Z")

</div>

Hi,

I’m getting back to this with some delay. First of all, thanks for your reply here also.

I have performed some tests, but I had to find a time window where I could test the model with one core on my original system, where I encountered the error. I have done the following test runs of my MRE with 1 core in the fitting:

- On a compute cluster, run time 3.5 days
- On my original system, run time 28hrs, still running

So far, none of these yielded ANY result, be it positive or negative. Neither have I gotten any output that indicates the finishing of an optimization generation, nor any error message. Nothing happended, that’s all I can say so far.

Greetings, AN\_IA

---

<div class="post-metadata">

**Author:** ![h.lanzrath](https://forum.cadet-web.de/user_avatar/forum.cadet-web.de/h.lanzrath/32/1186_2.png) [@h.lanzrath](https://forum.cadet-web.de/u/h.lanzrath)\
**Post date:** [October 29, 2025, 12:18pm UTC](https://forum.cadet-web.de/t/attributeerror-nonetype-object-has-no-attribute-get-values-from-container-parameter-fitting-attempt/1319/4 "2025-10-29T12:18:09Z")

</div>

Hi AN\_IA,

We are currently busy with the preparation of the CADET Workshop. I will come back to you ASAP, in the meantime, it would be great if you could answer the following questions:

- Have you tried running a single simulation with some mock parameters to make sure your model setup is correct?
- If so, how long would you expect a single simulation to run?

If the optimizer did not report anything, that strongly hints at an issue in the configuration of your base processes. I would advise you to take a step back and have a look at your simulation first, before optimizing.

Kind regards,  
Hannah

---

<div class="post-metadata">

**Author:** ![AN\_IA](https://forum.cadet-web.de/letter_avatar_proxy/v4/letter/a/da6949/32.png) [@AN\_IA](https://forum.cadet-web.de/u/AN_IA)\
**Post date:** [November 11, 2025, 4:00pm UTC](https://forum.cadet-web.de/t/attributeerror-nonetype-object-has-no-attribute-get-values-from-container-parameter-fitting-attempt/1319/5 "2025-11-11T16:00:17Z")

</div>

Hi,

and thanks for the reply. I can confirm that I had a smoothly running simulation, before I tried to fit any parameters. Simulation times were between 1 and 10 minutes.

In the meantime, I encountered more problems with the original CADET fitting tools, which led me to abandon CADET original fitting and switching to the Optuna fitter. I couldn’t get any CADET fitting to work, because I encountered numerous sqlite3 errors:

•sqlite3.OperationalError: database is locked

•sqlite3.OperationalError: unable to open database file

•sqlite3.OperationalError: disk I/O error

These appeared on both systems that I use. I suppose it has something to do with parallelization. I cannot recall my exact settings (number of cores) at this moment, but I don’t think parallelization was too heavy. I switched to the Optuna fitter, and things are working fine now. Also, I am entering the final phase of my bachelor’s thesis, and unfortunately I don’t have time at the moment to look further into CADET original fitting. Nonetheless, thank you very much for your support. I’m getting by rather well at the moment, using the Optuna fitter.

Kind regards,

AN\_IA

---

<div class="post-metadata">

**Author:** ![h.lanzrath](https://forum.cadet-web.de/user_avatar/forum.cadet-web.de/h.lanzrath/32/1186_2.png) [@h.lanzrath](https://forum.cadet-web.de/u/h.lanzrath)\
**Post date:** [November 11, 2025, 4:02pm UTC](https://forum.cadet-web.de/t/attributeerror-nonetype-object-has-no-attribute-get-values-from-container-parameter-fitting-attempt/1319/6 "2025-11-11T16:02:13Z")

</div>

Glad you got it to work, all the best in finishing up your thesis!

If you want to look into CADET-Process Optimization tools in the future again, just let us know.

Kind regards,  
Hannah

---

<div class="post-metadata">

**Author:** ![system](https://forum.cadet-web.de/uploads/default/original/2X/4/4ec43a357aeb35dcb4e6620649f54e8e6591b258.png) [@system](https://forum.cadet-web.de/u/system)\
**Post date:** [January 27, 2026, 11:53am UTC](https://forum.cadet-web.de/t/attributeerror-nonetype-object-has-no-attribute-get-values-from-container-parameter-fitting-attempt/1319/7 "2026-01-27T11:53:03Z")

</div>

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.
