diff --git a/bokeh/models/widgets/layouts.py b/bokeh/models/widgets/layouts.py
index <HASH>..<HASH> 100644
--- a/bokeh/models/widgets/layouts.py
+++ b/bokeh/models/widgets/layouts.py
@@ -184,7 +184,8 @@ class SimpleApp(Widget):
     def args_for_func(self, func):
         args = {}
         for k,v in self.widget_dict.items():
-            args[k] = v.value
+            if hasattr(v, 'value'):
+                args[k] = v.value
         args['app'] = self
         args = arg_filter(func, args)
         return args
avoid layout breaking when simpleapp is managing a widget that does not have a value attribute, like a Button