diff --git a/weed/topology/volume_layout.go b/weed/topology/volume_layout.go
index 0db95d289..e2d6c170c 100644
--- a/weed/topology/volume_layout.go
+++ b/weed/topology/volume_layout.go
@@ -218,7 +218,7 @@ func (vl *VolumeLayout) ensureCorrectWritables(vid needle.VolumeId) {
 
 func (vl *VolumeLayout) isAllWritable(vid needle.VolumeId) bool {
 	for _, dn := range vl.vid2location[vid].list {
-		if v, found := dn.volumes[vid]; found {
+		if v, getError := dn.GetVolumesById(vid); getError == nil {
 			if v.ReadOnly {
 				return false
 			}