# system.opc.browseSimple time out error

**URL:** <https://forum.inductiveautomation.com/t/system-opc-browsesimple-time-out-error/9997>\
**Category:** Ignition\
**Created:** [May 8, 2015, 9:59pm UTC](https://forum.inductiveautomation.com/t/system-opc-browsesimple-time-out-error/9997 "2015-05-08T21:59:14Z")\
**Posts on this page:** 1\
**Showing post:** 5

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [May 11, 2015, 11:09pm UTC](https://forum.inductiveautomation.com/t/system-opc-browsesimple-time-out-error/9997/5 "2015-05-11T23:09:48Z")

</div>

Here’s some code you can use as a springboard for playing with system.opc.browseServer and figuring out how it works. Be careful when increasing the maxDepth parameter, especially if you’re starting at or near the root, there’s no way to stop the browse once it starts!

```auto
import system
from functools import partial

maxDepth = 1
serverName = 'Ignition OPC-UA Server'

def browse(nodeId, depth = 0):
	children = system.opc.browseServer(serverName, nodeId)
	
	for child in children:
		elementType = str(child.getElementType())
		childNodeId = child.getServerNodeId().getNodeId()
		
		print '%s%s' % (depth*' ', childNodeId)
		
		# this is where you might check to see if child is one of the
		# tags you're looking for. you might also use additional criteria
		# to determine if you should continue browsing underneath 
		# this child in addition to elementType and maxDepth...
		
		if (elementType == 'FOLDER' and depth < maxDepth):
			browse(childNodeId, depth + 1)
			
root = '[logix57]'

system.util.invokeAsynchronous(partial(browse, root))
```

---

_[View the full topic](https://forum.inductiveautomation.com/t/system-opc-browsesimple-time-out-error/9997)._
