# “Could not find valid device for node.” while eagerly executing.

This cryptic error happens when the input to a function has the wrong type!

Here is an example:

This will return a long error that basically says:

If you pay close attention, it is saying the the input to the function sqrt should be one of

Here is an example:

`import tensorflow as tf`

`tf.enable_eager_execution()`

`tf.sqrt(4)`

This will return a long error that basically says:

`InternalError: Could not find valid device for node.`

`Node: {{node Sqrt}} = Sqrt[T=DT_INT32](dummy_input)`

`All kernels registered for op Sqrt :`

`device='XLA_CPU'; T in [DT_FLOAT, DT_DOUBLE, DT_COMPLEX64, DT_HALF]`

`device='XLA_GPU'; T in [DT_FLOAT, DT_DOUBLE, DT_COMPLEX64, DT_BFLOAT16, DT_HALF]`

`device='XLA_CPU_JIT'; T in [DT_FLOAT, DT_DOUBLE, DT_COMPLEX64, DT_HALF]`

`device='XLA_GPU_JIT'; T in [DT_FLOAT, DT_DOUBLE, DT_COMPLEX64, DT_BFLOAT16, DT_HALF]`

`device='GPU'; T in [DT_DOUBLE]`

`device='GPU'; T in [DT_HALF]`

`device='GPU'; T in [DT_FLOAT]`

`device='CPU'; T in [DT_COMPLEX128]`

`device='CPU'; T in [DT_COMPLEX64]`

`device='CPU'; T in [DT_BFLOAT16]`

`device='CPU'; T in [DT_DOUBLE]`

`device='CPU'; T in [DT_HALF]`

`device='CPU'; T in [DT_FLOAT]`

`[Op:Sqrt] name: Sqrt/`

If you pay close attention, it is saying the the input to the function sqrt should be one of

`double, half, float, complex,...`

but our input is `dt_int32`

that’s the problem. This works:`import tensorflow as tf`

`tf.enable_eager_execution()`

`tf.sqrt(4.) #notice that now the input is a float number`

This article was updated on March 23, 2020

## Comments