Taking a object in my screen and editing texture

Man I keep getting differnt errors left and right lol. Not really errors just not working how it used to be. Again I tried my waterfall example I did a while back but this time I get the error again

AssertionError: !is_empty() at line 3017 of panda/src/pgraph/nodePath.cxx

Again I check for spelling of the cube and also check the path and find it to be way differnt this time again.

render/a2.egg/-PandaNode/-PandaNode/cube702
render/a2.egg/-PandaNode/-PandaNode/-GeomNode

So I change my code to look like this

      self.river = self.environ.find("**/cube702")
      self.water = loader.loadTexture("towns/water.png")
      self.river.setTexture(self.water)
      self.textureStage0 = TextureStage("stage0") 
      self.river.setTexture(self.textureStage0,self.water,1) 

But I find it doesn’t change it at all or if it is, I don’t see it, or if I take out the ** I don’t see it at all.

After a little more indepth look, I find its cause by my

   keep

     Don't discard the visible geometry after using it to define a
     collision surface; create both an invisible collision surface
     and the visible geometry.

Not sure what to call then to get what I need from my model?

Yaya got .ls() to work finally to show me all the nodes:P I find that it says perty much the last thing told me but it also tells me a alittle more…so not sure the (hidden) whats messing it up now XD

    PandaNode
      CollisionNode cube702 (152 solids) (hidden)
      GeomNode  (1 geoms: TextureAttrib)